2017-09-18 12 views
2

私はページのパフォーマンスとその機能を測定するために人形を使っています(これはまだ始まっているので、まだ初期段階です)。 ここで私が使用している例があります:puppeteerがフォームを送信した後に新たに読み込まれたページ

const puppeteer = require('puppeteer'); 
(async() => { 

    const browser = await puppeteer.launch({headless: false}); 
    const page = await browser.newPage(); 
    await page._client.send('Performance.enable'); 
    await page.goto('https://xxxx.com'); 
    await page.focus("#formulario input#username"); 
    await page.type("[email protected]", {delay: 200}); 
    await page.focus("#formulario input#inputPassword3"); 
    await page.type("pass", {delay: 200}); 
    const loginForm = await page.$("#formulario"); 
    await loginForm.evaluate(loginForm => loginForm.submit()); 
    loginForm._client.send('Performance.getMetrics'); 
    //BELOW DOESN'T WORK BECAUSE THE PAGE IS GONE 
    await page.click("span.show-filters"); 

    await browser.close(); 
})(); 

フォームが送信された後にどのように新しくロードされたページにアクセスするには?私はユーザーがログインしていることを意味し、どのようにして新しく読み込まれたページのハンドルを取得できますか?

答えて

3

私はページが最初に読み込まれるのを待って動作させています。それから私は正しい要素をクリックすることができました。

だから私は、次の行を追加しました:私は疑う

await page.click(".show-filters"); 

私はドキュメントはツールのかなり不足していると言わなければならない:(

+0

:この1の前に

await page.waitForNavigation(); 

をドキュメントはまだ正式にリリースされていないことが改善されます。 – Neil

関連する問題