Python 如何避免';状态';:500和"x27 ;;值';:';selenium webdriver quit()方法中的{quot;value";:{quot;error";:“会话未创建”}}?

Python 如何避免';状态';:500和"x27 ;;值';:';selenium webdriver quit()方法中的{quot;value";:{quot;error";:“会话未创建”}}?,python,selenium,selenium-webdriver,webdriver,Python,Selenium,Selenium Webdriver,Webdriver,我正在非公共网页上运行非常复杂的selenium测试。在大多数情况下,这些测试运行正常,但有时在webdriver.quit()方法中失败 下面是一个错误示例: bsp_usecase_tests/tools/selNG.py:299: in quit self.webdriver.quit() /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py:187: in quit R

我正在非公共网页上运行非常复杂的selenium测试。在大多数情况下,这些测试运行正常,但有时在
webdriver.quit()方法中失败

下面是一个错误示例:

bsp_usecase_tests/tools/selNG.py:299: in quit
    self.webdriver.quit()
/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py:187: in quit
    RemoteWebDriver.quit(self)
/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py:606: in quit
    self.execute(Command.QUIT)
/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py:311: in execute
    self.error_handler.check_response(response)[0m
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f091b065550>
response = {'status': 500, 'value': '{"value":{"error":"session not created","message":"Tried to run command without establishing...s::imp::thread::{{impl}}::new::thread_start\n                        at /checkout/src/libstd/sys/unix/thread.rs:84"}}'}
大约有1-2%的情况下会出现这种错误

在这里正确的行动是什么

  • 捕捉错误并忽略它?我是说,测试已经开始了
  • 一个循环试图再次退出
  • 还有别的吗
停止客户端() 根据Selenium,在执行
quit()
命令后调用Python API文档。可以重写此方法以定义自定义关闭行为

  • 源代码:

    def stop_client(self):
    """
    Called after executing a quit command. This method may be overridden to define custom shutdown behavior.
    """
    pass
    

此错误消息

bsp_usecase_tests/tools/selNG.py:299: in quit
    self.webdriver.quit()
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f091b065550>
response = {'status': 500, 'value': '{"value":{"error":"session not created","message":"Tried to run command without establishing...s::imp::thread::{{impl}}::new::thread_start\n 

你在平行运行它们吗?您可以分享示例工作流吗?没有并行测试。对于单个测试,我创建了一个webdriver,然后将其关闭。我将稍微扩展一下描述…尝试在
mydriver.stop\u client()
之前添加一个暂停,就像
time.sleep(5)
将代码放在Try和except块下。有时,目标数据库和selenium运行的javascript没有响应。这是正常的事情。在过去的日子里,我会等待2秒钟,以确保页面已加载等。如果目标是在美国,而您在欧盟,则有时会出现正常延迟,如1秒或2秒,因此会出现此类错误。现在没有看到您的实时代码,这些就是我脑海中的主题。为什么要使用
stop\u client
then))?
bsp_usecase_tests/tools/selNG.py:299: in quit
    self.webdriver.quit()
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f091b065550>
response = {'status': 500, 'value': '{"value":{"error":"session not created","message":"Tried to run command without establishing...s::imp::thread::{{impl}}::new::thread_start\n 
mydriver = webdriver.Firefox(firefox_profile=profile, log_path=logfile)
...
do a single test here. Navigate to URL, login, click etc.
...
mydriver.quit()
mydriver.stop_client()