Node.jsでpuppeteerを使用してChromeの操作を自動化するJavaScriptを書いています。
例えばURL「https://www.example.com/」を表示し、idがbtn-nextのボタンを押したとき
遷移先のページでidがsuccessの要素が表示れたらidがbtn-submitのリンクをクリックするという処理の場合
以下のソースでうまくいきます。
JavaScript
1const puppeteer = require('puppeteer'); 2 3puppeteer.launch({ 4 headless: false, 5}).then(async browser => { 6 const page = await browser.newPage(); 7 8 await page.setViewport({ width: 1200, height: 800 }); 9 await page.goto('https://www.example.com/'); 10 await page.click('#btn-next'); 11 12 await page.waitForSelector('#success'); 13 14 await page.click('#btn-submit'); 15 16 17 browser.close(); 18 19}); 20
例えば、idがsuccessというのは通常パターンでは表示されるが、混雑時は表示されず
エラーページが表示されてしまう場合、エラーページが表示された場合はトップページに戻って
もう一度idがbtn-nextのボタンを押すような処理を行いたいです。
イメージとしては以下のような感じなのですが当然うまくいきません。
JavaScript
1 while(true){ 2 var item = page.$('#success'); 3 if (item != undefined) 4 { 5 break; 6 } 7 else 8 { 9 await page.goto("https://www.example.com/"); 10 await page.click('#btn-next'); 11 } 12 }
async/awaitを理解できていないのだと思いますが、ヒントだけでもご教示頂けると幸いです。
よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/29 06:41