Selenium Grid + Jenkins + Python与节点不匹配?

时间:2017-07-11 13:44:43

标签: python selenium jenkins jenkins-plugins

我目前正在尝试使用Selenium Grid与Jenkins和Python运行一些并行测试。

Jenkins和Selenium插件工作正常。 Selenium Grid Hub已启动,节点已成功注册。

编辑:我正在使用 Jenkins Selenium插件,这意味着我不会自己执行集线器和节点; jenkins为我提供了我指定的端口和驱动程序。无论如何我从控制台中提取了这个

[Jenkins] $ "C:\Program Files (x86)\Jenkins\jre\bin\java" -cp "C:\Program Files (x86)\Jenkins\war\WEB-INF\lib\remoting-3.7.jar" hudson.remoting.Launcher -cp "C:\Program Files (x86)\Jenkins\plugins\selenium\WEB-INF\lib\selenium-server-standalone-3.1.0.jar;C:\Program Files (x86)\Jenkins\plugins\selenium\WEB-INF\lib\htmlunit-driver-standalone-2.20.jar" -connectTo localhost:49204
... More Selenium Grid Stuff...
INFORMATION: Will listen on 4444
Jul 13, 2017 7:42:40 AM org.openqa.grid.internal.Registry add
INFORMATION: Registered a node http://localhost:4445

我在端口4444上运行了一个集线器,在端口4445上运行了一个节点。两个节点都在同一台机器上运行,并且端口都已解锁。

詹金斯在Selenium Grid标签中说了以下内容:

Configuration
Host: localhost
Port: 4444
Status: Online
...
Selenium 2 clients should connect as follow:
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);

我的问题在于我的python代码:

当我尝试使用中心网址和端口获取远程网络驱动程序时:

driver = webdriver.Remote(command_executor='http://localhost:4444/wd/hub', desired_capabilities=capabilities)

我收到以下错误

response = {'status': 500, 'value': '{"status":13,"value":{"class":"java.lang.NullPointerException","stackTrace":[{"className":"j...adPool$3","methodName":"run","lineNumber":555},{"className":"java.lang.Thread","methodName":"run","lineNumber":-1}]}}'}

但是,当我像这样使用Node端口时:

driver = webdriver.Remote(command_executor='http://localhost:4445/wd/hub', desired_capabilities=capabilities)

然后一切正常

也许我理解错误了...... Selenium Grid是不是应该将远程webdriver与符合条件的可用节点相匹配?

可能是什么问题?我一直在谷歌搜索疯狂,我找不到任何相关的

注意:我非常确定desired_capabilities已正确配置。

谢谢!

1 个答案:

答案 0 :(得分:0)

看起来我不是唯一有这个问题的人。实际上有很多人在谈论这个并等待修复。如果您遇到同样的问题,请看一下:

https://github.com/SeleniumHQ/selenium/issues/3808

此外,这个comment有一个简洁的解决方法,可以使一切正常,直到有一个修复。