通过 Selenium 和 Python 调用 webdriver.Remote("http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.CHROME) 时出现 WebDriverException

WebDriverException on invoking webdriver.Remote("http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.CHROME) through Selenium and Python

我很确定这会让人大吃一惊,但我已经遵循了我能找到的所有文档,但我无法摆脱这个错误。我正在设置一个 Selenium 网格(在 Docker 中)并且只有在我不指定远程的情况下才能对 运行 进行测试。这是代码

def setUp(self):
    self.browser = webdriver.Remote("http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.CHROME)

FWIW,这工作正常,但在没有 command_executor:

的网格环境中没有用
def setUp(self):
    self.browser = webdriver.Chrome()

根据许多来源,包括 https://hackr.io/blog/complete-guide-selenium-webdriver,对 RemoteWebDriver 的调用应该是正确的。

这是错误:

ERROR: test_hackernews_search_for_selenium (__main__.HackerNewsSearchTest)
Traceback (most recent call last):
  File "test.py", line 16, in setUp
    self.browser = webdriver.Remote("http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.CHROME)
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
WebDriverException: Message: None

这个错误信息...

ERROR: test_hackernews_search_for_selenium (__main__.HackerNewsSearchTest)
Traceback (most recent call last):
  File "test.py", line 16, in setUp
    self.browser = webdriver.Remote("http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.CHROME)
.
WebDriverException: Message: None

...意味着 客户端程序 无法启动新的 WebBrowsing SessionChrome 浏览器 会话。

你的主要问题是Selenium Grid Hub和Selenium Grid Node之间的连接 .


解决方案

确保以下几点:

  • Selenium Grid Hub 启动成功。
  • Selenium Grid 节点 已在 Selenium Grid Hub
  • 中成功启动和配置