Y. *_*iev 5 node.js web-scraping puppeteer
我有一段提交表单的代码。在该表单之后,我需要一个选择器 ( await page.waitForSelector("selector")) 来了解提交是否失败。
该代码填写了表单中的所有字段并成功提交。这里的问题是,当提交表单时,我被重定向到另一个页面,然后上下文就会丢失,或者至少这是我的理论。
// fill information
await page.type("#email", email)
await page.type("#password", password)
await page.type("#confirm-password", password)
// submit form
await page.click("#register-submit-button")
// wait for selector
await page.waitForSelector(".page-login")
Run Code Online (Sandbox Code Playgroud)
我尝试过使用await page.waitForNavigation(),而不是等待选择器,并得到了相同的结果。
我在互联网上搜索了解决方案,但没有任何效果。如果各位聪明人能解决这个问题,我将不胜感激!
Vav*_*off 11
官方文档对你的情况是这样说的:
请记住,如果 click() 触发导航事件,并且有一个单独的 page.waitForNavigation() 承诺需要解决,那么您最终可能会遇到产生意外结果的竞争条件。单击并等待导航的正确模式如下:
// submit form amd wait for navigation to a new page
await Promise.all([
page.click("#register-submit-button"),
page.waitForNavigation(),
]);
// then do whataever is necessary on that new page
await page.waitForSelector(".page-login")
Run Code Online (Sandbox Code Playgroud)