2017-08-24 191 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");