javascript - Puppeteer page.waitForNavigation() 超时
问题描述
我在使用 puppeteer 单击按钮并导航到下一页时遇到了一些困难。每当我运行程序时,它都会超时并给我:TimeoutError:超过 30000 毫秒的导航超时。我的程序目前只是在 ubereats.com 中输入一个地址,然后单击 Find Food 按钮。
我已经在使用
await Promise.all([
page.waitForNavigation(),
page.click("#wrapper > main > div.ao.ap.aq.ar.af > div.ag.bq.br.bs.bn > div > button"),
]);
当我在 google.com 上尝试相同的代码(使用不同的选择器)时,它可以工作。当我将 headless 设置为 false 运行它时,它显示输入地址并滚动到按钮的中心,但之后没有任何反应。当我手动单击按钮时它起作用了。我还尝试了所有不同的 waitForNavigation 选项。任何指导都会非常有帮助!提前致谢。
完整代码供参考:
async function scrapeProduct(url, address) {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.goto(url);
await page.type("#location-typeahead-home-input", address);
await Promise.all([
page.waitForNavigation(),
page.click("#wrapper > main > div.ao.ap.aq.ar.af > div.ag.bq.br.bs.bn > div > button"),
]);
await page.screenshot({path: "test.png"});
browser.close();
}
解决方案
await page.waitForNavigation({waitUntil: 'networkidle0',timeout:0});
推荐阅读
- docplex - 如何将解决方案作为 docplex 中的固定起点传递给模型?
- python - KeyError:“[Index(['URL'], dtype='object')] 均不在 [columns] 中”
- angular - TypeError:无法读取未定义的属性(读取“详细信息”)
- javascript - Express 发送包含页面 html 的警报,而不是加载页面
- ruby-on-rails - RailsAdmin:批量导出不适用于 Pundit
- javascript - 使用 jQuery 跟踪鼠标指针
- flask - sqlalchemy.orm.exc.DetachedInstanceError:父实例
不绑定到会话 - visual-studio-code - VScode与WSL连接“与终端的pty主机进程的连接无响应,终端可能停止工作。”
- c++ - c ++计算导致当前函数的函数调用的深度
- excel - 为什么=isnumber(当子字符串为空时,搜索函数返回TRUE