我有一段提交表单的代码。在提交表单之后,我需要一个选择器(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")
我尝试使用await page.waitForNavigation()
,而不是等待选择器,得到了相同的结果。
我在网上搜索了一下,但没有任何结果。如果你们这些聪明人能解决这个问题,我将不胜感激!
官方文档对您的情况是这样说的:
请记住,如果click((触发了一个导航事件,并且有一个单独的页面。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")