2017-06-16 123 views
0

我已经更新了我的pom.xml文件中WebDrivermanager的依赖关系。 同时在我的本地运行下面的代码似乎工作正常。webdrivermanager是否支持RemoteWebDriver(Selenium Grid)?

driver = new ChromeDriver(capability); 

但是当我试图用RemoteWebDriver远程运行代码,它失败了,不断地问加二进制文件浏览器

URL remote_grid = new URL("http://" + seleniumHub + ":" + seleniumHubPort + "/wd/hub"); 
driver = new RemoteWebDriver(remote_grid, capability); 

它抛出异常下面。

[Invoker 1386767190] Keeping method SeleniumInit.setUp(java.lang.reflect.Method, org.testng.ITestContext)[pri:0, instance:[email protected]] for class [TestClass name=class com.wo2.commonfucntion.index.LoginIndex] 
[Invoker 1386767190] Keeping method SeleniumInit.tearDown(org.testng.ITestResult)[pri:0, instance:[email protected]] for class [TestClass name=class com.wo2.commonfucntion.index.LoginIndex] 
[Invoker 1386767190] Keeping method SeleniumInit.setUp(java.lang.reflect.Method, org.testng.ITestContext)[pri:0, instance:[email protected]] for class [TestClass name=class com.wo2.commonfucntion.index.LoginIndex] 
[Invoker 1386767190] Invoking @BeforeMethod SeleniumInit.setUp(java.lang.reflect.Method, org.testng.ITestContext)[pri:0, instance:[email protected]] 
13:27:40.503 [main] INFO i.g.bonigarcia.wdm.BrowserManager - Reading https://chromedriver.storage.googleapis.com/ to seek [chromedriver] 
13:27:41.358 [main] INFO i.g.bonigarcia.wdm.BrowserManager - Latest version of [chromedriver] is 2.30 
13:27:41.368 [main] DEBUG io.github.bonigarcia.wdm.Downloader - Using binary driver previously downloaded C:\Users\zara\.m2\repository\webdriver\chromedriver\win32\2.30\chromedriver.exe 
13:27:41.368 [main] INFO i.g.bonigarcia.wdm.BrowserManager - Exporting webdriver.chrome.driver as C:\Users\zara\.m2\repository\webdriver\chromedriver\win32\2.30\chromedriver.exe 
========= Google Chrome Browser ========== 
Failed to invoke configuration method com.wo2.init.SeleniumInit.setUp:The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html 
Command duration or timeout: 120 milliseconds 
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown' 
System info: host: 'ICWS-1162', ip: '192.168.0.42', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_111' 
Driver info: driver.version: RemoteWebDriver 
[Invoker 1386767190] Keeping method SeleniumInit.tearDown(org.testng.ITestResult)[pri:0, instance:[email protected]] for class [TestClass name=class com.wo2.commonfucntion.index.LoginIndex] 
[Invoker 1386767190] Invoking @AfterMethod SeleniumInit.tearDown(org.testng.ITestResult)[pri:0, instance:[email protected]] 

TEST FAILED - validLogin 

ERROR MESSAGE: null 


message from tear downjava.lang.NullPointerException 
===== Invoked methods 
    SeleniumInit.fetchSuiteConfiguration(org.testng.ITestContext)[pri:0, instance:[email protected]][email protected] 1501587365 
    LoginIndex.validLogin()[pri:0, instance:[email protected]] 1501587365 
===== 
Creating D:\Rahul_P-QA\Intech_Workspace\WO2_QA\WO2_QA\test-output\Work Order - 2\WO2_SC_001 _ To verify user can login successfully..html 
Creating D:\Rahul_P-QA\Intech_Workspace\WO2_QA\WO2_QA\test-output\Work Order - 2\WO2_SC_001 _ To verify user can login successfully..xml 
FAILED CONFIGURATION: @BeforeMethod setUp(public void com.wo2.commonfucntion.index.LoginIndex.validLogin(), [email protected]) 
org.openqa.selenium.WebDriverException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html 
Command duration or timeout: 120 milliseconds 
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown' 
System info: host: 'ICWS-1162', ip: '192.168.0.42', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_111' 
Driver info: driver.version: RemoteWebDriver 

回答

0

实际上,WebDriverManager可以帮助您设置Selenium Grid。该过程如下:

  1. 启动集线器。您可以使用命令行(java -jar selenium-server-standalone-<version>.jar -role hub)或使用类似于此example的Java类来完成此操作。
  2. 集线器中的寄存器节点。这里是WebDriverManager的帮助,因为它下载适当的二进制文件,注册该二进制文件。在这里你可以找到一个使用Chrome浏览器的example
  3. 运行测试,连接到URL的中心。这里另一个example
+0

很酷,明白了,感谢Boni的帮助。 – promitheus

+0

如果它对你有用,你应该检查答案是否被接受 –