2017-08-24 185 views
0

我已经通过运行命令启动硒服务器集线器:通过运行命令 java -jar selenium-server-standalone-3.4.jar -port 4444 -role hub无法启动硒脚本在网格

我还连接节点:在网格控制台java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register/ -browser -browserName=firefox -port 5580

grid node

其显示v:null(不知道为什么?)。

我正在乳宁下面的代码运行硒:

public static void main(String[] args) throws MalformedURLException, InterruptedException{ 

    String URL = "http://www.DemoQA.com"; 
    String Node = "http://localhost:4444/wd/hub"; 
    DesiredCapabilities cap = DesiredCapabilities.firefox(); 
    cap.setBrowserName("firefox"); 
    cap.setPlatform(Platform.WIN10); 


    driver = new RemoteWebDriver(new URL(Node), cap); 

    driver.navigate().to(URL); 
    Thread.sleep(5000); 
    driver.quit(); 
} 

`

enter image description here

gettinf这些错误,有人请这些帮助?

在ADC

+0

尝试将命令行属性切换到'-jar'之前。请参阅https:// github。COM/SeleniumHQ /硒/问题/ 2566 – HaC

回答

1

网格控制台明确设置浏览器的名称都显示了Firefox的任何情况下都不是你所面临的问题。您的节点似乎存在一些问题。

检查节点注册命令。

java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register/ -browser browserName=firefox,platform=WINDOWS,maxInstances=2 

尝试在命令browserName之前去除-

0

错误消息Error forwarding the new session cannot find是告诉你,无论你请求的网格的方式千恩万谢,轮毂找不到支持该功能的任何节点。

在你的情况下,当你这样做

DesiredCapabilities cap = DesiredCapabilities.firefox(); 
cap.setBrowserName("firefox"); 
cap.setPlatform(Platform.WIN10); 

你基本上是告诉你需要一个能够支持其名称浏览器作为firefox和节点应该在Windows 10上运行的节点枢纽操作系统。

但在您的节点开始的命令,你用这个

java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register/ -browser -browserName=firefox -port 5580 

这意味着您注册支持Firefox浏览器,到集线器的一个节点,但你从来不提这个平台什么。所以节点认为平台是“任何”的。

现在,当您创建新的RemoteWebDriver实例时,Hub尝试将请求的功能与每个节点的可用功能进行匹配。由于它没有找到任何在Windows 10上运行且支持firefox的节点(请记住,您只有一个支持firefox的节点并且其平台未设置),因为“ANY”与“WIN10”不匹配,所以匹配失败。

要解决该问题,请删除行cap.setPlatform(Platform.WIN10);并重试。

PS: 线DesiredCapabilities cap = DesiredCapabilities.firefox();已经计算出浏览器的名称,所以你并不需要通过cap.setBrowserName("firefox");