[英]How to fix python-selenium error “connection refused” when initializing a selenium webdriver?
[英]How to fix python-selenium crash when trying to make a screenshot?
在 python 中使用 selenium 4.0.0,我收到一个错误
selenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
(Session info: headless chrome=94.0.4606.81)
当代码尝试制作屏幕截图时。 回溯是
...
File "/usr/local/lib/python3.8/site-packages/check_pages/page_dom_check.py", line 57, in make_full_screenshot
img = Image.open(BytesIO((driver.get_screenshot_as_png())))
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 1064, in get_screenshot_as_png
return base64.b64decode(self.get_screenshot_as_base64().encode('ascii'))
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 1074, in get_screenshot_as_base64
return self.execute(Command.SCREENSHOT)['value']
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
我不能发布一个小的可重现代码,因为它只发生在我在 gitlab CI 中运行它时。 但它总是在制作屏幕截图时发生。
也许还有另一种制作屏幕截图的方法?
我没有回答我的问题,但我创建了一个似乎有效的解决方法。
我正在创建一个 selenium 驱动程序,而那个驱动程序正在打开不同的页面。 在这里我得到了错误。
# pseudocode
driver = ...
for check in checks:
driver.get(url)
# do other stuff with driver
driver.quit()
要变通解决此问题,请分别为每个页面创建一个新驱动程序。
# pseudocode
for check in checks:
driver = ...
driver.get(url)
# do other stuff with driver
driver.quit()
这样你甚至可以把驱动程序周围的所有东西放在一个 try-except 循环中再试一次
# pseudocode
for check in checks:
while ...
try:
driver = ...
driver.get(url)
# do other stuff with driver
driver.quit()
except UselessException:
pass
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.