selenium 网格监听节点端口而不是集线器端口
问题描述
对于我的测试,我在不同的端口上本地运行网格和节点.
For my test, I am running grid and node locally on different ports.
java -jar /usr/bin/selenium-server.jar -port 4444 -role hub
java -jar /usr/bin/selenium-server.jar -role node -hub http://127.0.0.1:4444/grid/register -port 5556
因此,网格在 4444 上运行,节点在 5556 上运行.
So, the grid is running on 4444 and node is running on 5556.
在我的测试中,如果我启动驱动程序
In my test, if i start the driver as
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=desired_capabilities)
那么测试失败并出现异常
then the test fails with the exception
response = {'status': 500, 'value': '{"status":13,"value":{"class":"java.lang.NullPointerException","stackTrace":[{"fileName":"Ha...n","lineNumber":590},{"fileName":"Thread.java","className":"java.lang.Thread","methodName":"run","lineNumber":745}]}}'}
如果我在节点端口 5555 而不是集线器端口 4444 上运行测试,则测试通过,如下所示
The test passed if i run the test on the node port 5555, instead of the hub port 4444, as shown below
driver = webdriver.Remote(command_executor='http://127.0.0.1:5555/wd/hub', desired_capabilities=desired_capabilities)
我认为,我们应该在集线器端口上运行测试,在本例中是 4444 而不是 5555.
I was of the opinion that, we should be running the tests on the hub port, which in this case is 4444 and not 5555.
如果我错了,请纠正我.
Please correct me if i am wrong.
解决方案
如果你打算在Grid
中使用Selenium
配置通过Hub
和Node
配置,我建议你使用最新的selenium-server-standalone-3.6.0
jar如下:
If you intend to use Selenium
in Grid
configuration through Hub
and Node
configuration, I would suggest you to use the most recent selenium-server-standalone-3.6.0
jar as follows:
启动
Selenium Grid Hub
(默认在端口 4444):
Start the
Selenium Grid Hub
(by default on port 4444) :
java -jar selenium-server-standalone-3.6.0.jar -role hub
确认 Selenium Grid Hub
已启动:
Confirm the Selenium Grid Hub
is started:
16:06:29.891 INFO - Nodes should register to http://192.168.1.48:4444/grid/register/
16:06:29.891 INFO - Selenium Grid hub is up and running
访问 Selenium Grid Hub 控制台
并确保 Selenium Grid Hub
已启动并运行:
Access the Selenium Grid Hub Console
and ensure Selenium Grid Hub
is up and running:
http://localhost:4444/grid/console
为 Mozilla/GeckoDriver 启动 Selenium Grid Node
(默认在端口 5555):
Start the Selenium Grid Node
(by default on port 5555) for Mozilla/GeckoDriver:
java -Dwebdriver.gecko.driver=geckodriver.exe -jar selenium-server-standalone-3.6.0.jar -role node -hub http://localhost:4444/grid/register
确认Selenium Grid Node
已注册并启动:
Confirm the Selenium Grid Node
is registered and started:
16:15:54.696 INFO - Selenium Grid node is up and ready to register to the hub
16:15:54.742 INFO - Starting auto registration thread. Will try to register every 5000 ms.
16:15:54.742 INFO - Registering the node to the hub: http://localhost:4444/grid/register
16:15:54.975 INFO - The node is registered to the hub and ready to use
使用 DesiredCapabilities
执行 Testcase
,如下所示:
Execute with the Testcase
with DesiredCapabilities
as follows:
self.driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=caps)
在您的 Testcase
成功执行时,观察以以下结尾的控制台日志:
Observe the console logs ending with the following on successful execution of your Testcase
:
16:23:50.590 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@37ff9771
16:23:50.590 INFO - Handler thread for session 31a1dcb0-8bed-40fb-acdb-d5be19f03ba2 (firefox): Executing DELETE on /session/31a1dcb0-8bed-40fb-acdb-d5be19f03ba2
(handler: ServicedSession)
1506941630595 Marionette INFO New connections will no longer be accepted
相关文章