我正在运行集线器和节点,并且我正在尝试在节点上运行Chrome浏览器测试,但它失败并出现错误:The path to the driver executable must be set by the webdriver.chrome.driver system property;
但我已经设定了它。以下是我正在使用的代码:
package seleniumgridpackage;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import org.openqa.selenium.remote.RemoteWebDriver;
public class SeleniumGridTest {
WebDriver driver;
String baseUrl = "http://www.google.com";
String expectedTitle = "Google";
@BeforeTest
public void setUp() throws MalformedURLException {
File file = new File("C://Drivers//chromedriver.exe");
//File file = new File("C://Drivers//IEDriverServer.exe");
System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setBrowserName("chrome");
cap.setPlatform(Platform.VISTA);
driver = new RemoteWebDriver(new URL("http://x.x.x.x:5566/wd/hub"), cap);
}
@Test
public void test(){
driver.get(baseUrl);
Assert.assertEquals(driver.getTitle(), expectedTitle);
}
@AfterTest
public void tearDown(){
driver.quit();
}
}
注意:我已将chromedriver.exe
放在节点和集线器的C://Drivers
文件夹中。当我尝试使用IE时,Sams就会发生
请帮助我理解我做错了什么。
答案 0 :(得分:2)
一切都在于如何启动节点。所以首先,做通常的事情:
java -jar -jar selenium-server-standalone-2.20.0.jar -role hub
然后像这样启动节点:
java -jar lib/selenium-server-standalone-2.20.0.jar -role webdriver -hub http://localhost:4444/grid/register -browser browserName="chrome",version=ANY,platform=WINDOWS,maxInstances=5 -Dwebdriver.chrome.driver=lib\chromedriver.exe
更具体地说:您必须使用参数browser
启动NODE并添加-D
参数,指定chromedriver的完整路径
我非常感谢John Naegle在这里回答了关于互联网浏览器的类似问题 - 请参阅here
答案 1 :(得分:1)
我尝试了各种组合,最后发现需要在运行时设置属性。
启动节点使用:这适用于firefox
java -jar sel2.40.jar -role node -hub http://locahost:4443/grid/register -port 5556
要启动IE的节点,我们需要在启动节点时指定webdriver.ie.driver系统属性:
java -Dwebdriver.ie.driver="D:\IEDriverServer.exe" -jar sel2.40.jar -role node -hub http://locahost:4443/grid/register -port 5556