表单提交后操纵新加载的页面
puppeteer newly loaded page after the form submit
我正在使用 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("test2222@gmail.com", {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();
})();
表单提交后如何访问新加载的页面?我的意思是用户已经登录,我们如何才能获得新加载页面的句柄?
我通过等待页面先加载来让它工作。然后我就可以点击正确的元素了。
所以我添加了以下行:
await page.waitForNavigation();
在此之前:
await page.click(".show-filters");
我必须说该工具的文档相当稀缺:(
我正在使用 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("test2222@gmail.com", {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();
})();
表单提交后如何访问新加载的页面?我的意思是用户已经登录,我们如何才能获得新加载页面的句柄?
我通过等待页面先加载来让它工作。然后我就可以点击正确的元素了。
所以我添加了以下行:
await page.waitForNavigation();
在此之前:
await page.click(".show-filters");
我必须说该工具的文档相当稀缺:(