Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python selenium网格侦听节点端口而不是集线器端口_Python_Selenium_Selenium Webdriver_Webdriver_Selenium Grid - Fatal编程技术网

Python selenium网格侦听节点端口而不是集线器端口

Python selenium网格侦听节点端口而不是集线器端口,python,selenium,selenium-webdriver,webdriver,selenium-grid,Python,Selenium,Selenium Webdriver,Webdriver,Selenium Grid,对于我的测试,我在不同的端口上本地运行网格和节点 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上运行 在我的测试中,如果我启动驱动程序 driver = webdriver.R

对于我的测试,我在不同的端口上本地运行网格和节点

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上运行

在我的测试中,如果我启动驱动程序

driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=desired_capabilities)
然后测试失败,出现异常

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上运行测试,则测试通过,如下所示

driver = webdriver.Remote(command_executor='http://127.0.0.1:5555/wd/hub', desired_capabilities=desired_capabilities)
我认为,我们应该在集线器端口上运行测试,在本例中是4444而不是5555


如果我错了,请纠正我。

您正在向服务器传递所需的功能,这主要是不正确的模块

driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=desired_capabilities)
应该是

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=DesiredCapabilities.FIREFOX)

可能存在一种可能性,即您以前在端口4444上的网格配置未正确关闭。您只需检查是否有任何进程正在使用端口4444运行,然后将其关闭。您可以使用以下命令来了解正在运行的进程,并打开进程

C:\Users\username>netstat -o -n -a | findstr 0.0:4444
TCP    0.0.0.0:4444      0.0.0.0:0              LISTENING       3116
C:\Users\username>taskkill /F /PID 3116
然后重新配置网格并运行它,它可能与端口4444一起工作
--最好的。

如果您打算通过
节点
配置在
网格
中使用
,我建议您使用最新的selenium-server-standalone-3.6.0,如下所示:

self.driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=caps)
  • 启动Selenium网格集线器(默认情况下在端口4444上):

  • 确认启动了Selenium电网集线器:

    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已启动并运行:

    http://localhost:4444/grid/console
    
  • 为Mozilla/GeckoDriver启动Selenium网格节点(默认情况下在端口5555上):

    java -Dwebdriver.gecko.driver=geckodriver.exe -jar selenium-server-standalone-3.6.0.jar -role node -hub http://localhost:4444/grid/register
    
  • 确认Selenium网格节点已注册并启动:

    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
    
  • 使用具有所需功能的测试用例执行,如下所示:

    self.driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=caps)
    
  • 成功执行测试用例后,请观察控制台日志,日志以以下内容结尾:

    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
    

  • 升级到最新版本有效。我认为它在发布问题之前尝试过升级。不管怎样,它现在起作用了。非常感谢。