首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复"WebDriverException: Message: connection refused"?

如何修复"WebDriverException: Message: connection refused"?
EN

Stack Overflow用户
提问于 2017-12-21 08:13:45
回答 4查看 20.3K关注 0票数 20

我正在使用一个非常复杂的设置来测试各种非公开网页。我使用jenkinsdocker映像中运行python-selenium测试。这样,我完全独立于詹金斯的环境,并能创造我自己的环境。在这个环境中,我安装了以下软件:

  • Firefox: 57.0.1
  • 壁虎司机: 0.18.0
  • 鼻孔检查: 1.3.7
  • 硒: 3.8.0

selenium测试以如下方式创建WebDriver

代码语言:javascript
复制
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.dir", self.downloadpath)
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.useDownloadDir", True)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("pdfjs.disabled", True)
profile.set_preference("browser.helperApps.neverAsk.saveToDisk",
"application/force-download, image/png, text/html, text/plain, "
"image/tiff, text/csv, application/zip, application/octet-stream")
profile.set_preference("browser.download.manager.alertOnEXEOpen", False)
profile.set_preference("browser.download.manager.focusWhenStarting", False)
profile.set_preference("browser.helperApps.alwaysAsk.force", False)
profile.set_preference("browser.download.manager.alertOnEXEOpen", False)
profile.set_preference("browser.download.manager.closeWhenDone", True)
profile.set_preference("browser.download.manager.showAlertOnComplete", False)
profile.set_preference("browser.download.manager.useWindow", False)
profile.set_preference("services.sync.prefs.sync.browser.download.manager.showWhenStarting",
False)
self.driver = webdriver.Firefox(profile, log_path = logfile)

其中logfileself.downloadpath是对接程序设置中的两个有效路径。

整个测试套件由6个独立的测试用例组成,每个测试用例的设置与上面相同。它们通常运行良好,完好无损。

但是,如果没有对测试或一般设置进行任何更改,测试有时会失败,出现以下错误消息:

代码语言:javascript
复制
  File "/root/tests/bsp_usecase_tests/tools/basicsuite.py", line 210, in set_driver_firefox
    self.driver = webdriver.Firefox(profile, log_path = logfile)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 158, in __init__
    keep_alive=True)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 154, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 243, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 311, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 237, in check_response
    raise exception_class(message, screen, stacktrace)
WebDriverException: Message: connection refused

我有两个问题:

  1. 这里拒绝什么连接?错误信息的含义是什么?
  2. 我怎样才能修正这个错误呢?

增编

  • 当我在time.sleep(10)行前面使用webdriver.Firefox时,错误不再出现。我应该把这句话放一段时间吗-试试-除了循环?
EN

Stack Overflow用户

发布于 2018-01-04 05:05:43

这里拒绝什么连接?错误信息的含义是什么?

与Firefox web浏览器之间的连接。嗯,不是连接本身,而是一个was驱动程序发送的一个请求被浏览器“拒绝”了。请注意,这是通过实现的。

我怎样才能修正这个错误呢?

通常,在出现这样的错误时,最常见的原因是兼容性问题。换句话说,我怀疑您的geckodriver版本0.18.0对于Firefox57来说太老了。将geckodriver升级到最新的稳定版本(当前为0.19.1)。

票数 5
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47920639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档