使用pyppeteer的过程中发生了报错:
驱动异常-> 'NoneType' object has no attribute 'get'
还有:
驱动异常-> Connection is closed
在报错时,发现浏览器已经不见了,只见console一直在报上述的错。
大概知道已经没有page了,由于逻辑是循环处理的,所以使用代码模拟了一下当时的情况:
exepath = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
browser = await launch({'executablePath': exepath, 'headless': False, 'slowMo': 15 })
pages = await browser.pages()
if len(pages) > 0:
for pg in pages:
await pg.close() # 关闭所有页面
page = await browser.newPage()
res = await page.goto(url, {'timeout': 1000 * 30})
上述逻辑关闭了所有页面之后,就重现了报错
估计是当时循环处理时,某个报错逻辑把所有page关掉了,browser在没有page的情况下已经没有窗口对象,再新建page时已经无法创建了,导致异常。所以代码改成这样就好了:
exepath = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
browser = await launch({'executablePath': exepath, 'headless': False, 'slowMo': 15 })
pages = await browser.pages()
if len(pages) > 0:
for pg in pages:
await pg.close() # 关闭其他页面
page = await browser.newPage()
if page == None:
browser = await launch({'executablePath': exepath, 'headless': False, 'slowMo': 15 })
pages = await browser.pages()
res = await page.goto(url, {'timeout': 1000 * 30})