即使页面已经加载,PYppeteer 也会超时没有微调器,没有网络活动

问题描述

我有以下代码可以自动登录到特定站点,以便获取登录屏幕后面的一些值。

#!/usr/bin/python3

import asyncio
from pyppeteer import launch

browser = await launch( {'headless': True} );
page = await browser.newPage()
await page.goto(page_url1,{'waitUntil': 'networkidle2','timeout': '30000'})
# injecting username and password redacted    
await asyncio.gather(
    page.waitForNavigation({'waitUntil': 'networkidle2','timeout': '30000'}),page.click('#submitButton')
)
# the line above got stuck or timed out
await browser.close()

pyppeteer.errors.TimeoutError: Navigation Timeout Exceeded: 30000 ms exceeded

解决方法

我花了几个小时试图调试它,但最终解决的是将 websockets 降级到 6.0,正如一些人在这里建议的那样:Pyppeteer crushes after 20 seconds with pyppeteer.errors.NetworkError

pip3 install websockets==6.0 --force-reinstall

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...