1. 浏览器崩会话崩溃问题(服务器环境)
Selenium 浏览器会话已经在页面崩溃后被删除
Traceback (most recent call last):
File "C:\Users\Administrator\PycharmProjects\pythonProject\zisun_tool.py", line 631, in <module>
main_run()
File "C:\Users\Administrator\PycharmProjects\pythonProject\decorator.py", line 10, in wrapper
result = func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\PycharmProjects\pythonProject\zisun_tool.py", line 588, in main_run
login_page.login_with_uiauto()
File "C:\Users\Administrator\PycharmProjects\pythonProject\zisun_tool.py", line 125, in login_with_uiauto
username_input = wait.until(
^^^^^^^^^^^
File "C:\Users\Administrator\.virtualenvs\pythonProject-T2s09oHG\Lib\site-packages\selenium\webdriver\support\wait.py", line 96, in until
value = method(self._driver)
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\.virtualenvs\pythonProject-T2s09oHG\Lib\site-packages\selenium\webdriver\support\expected_conditions.py", line 156, in _predicate
return _element_if_visible(driver.find_element(*locator))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\.virtualenvs\pythonProject-T2s09oHG\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 741, in find_element
return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\.virtualenvs\pythonProject-T2s09oHG\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 347, in execute
self.error_handler.check_response(response)
File "C:\Users\Administrator\.virtualenvs\pythonProject-T2s09oHG\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
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: chrome=125.0.6422.76)
Stacktrace:
#0 0x5611e4051e9a <unknown>
#1 0x5611e3d3b2a1 <unknown>
#2 0x5611e3d223a5 <unknown>
#3 0x5611e3d20336 <unknown>
#4 0x5611e3d209af <unknown>
#5 0x5611e3d31287 <unknown>
1.1. 原因:
未设置浏览器的无头(headless)模式
options.add_argument('--headless') # 无头模式
# 防止打开浏览器后闪退
options = webdriver.ChromeOptions()
# options.add_experimental_option('detach', True)
options.add_argument('--headless') # 无头模式
options.add_argument('--disable-gpu') # 不做gpu渲染,减少崩溃问题
# 设置为开发者模式,防止被各大网站识别出来使用了Selenium
options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 服务器版本
self.browser = webdriver.Remote(command_executor="http://10.130.9.31:4444/wd/hub", options=options)
logger.info("打开浏览器")
2. 服务器环境-元素超时问题
selenium.common.exceptions.TimeoutException: Message:
解决方案:
增大显示等待时间
wait = WebDriverWait(self.browser, 60) # 设置最长等待时间为60秒
开始
欢迎关注公众号,与Joker一起探索测试之道。