Java 硒-don';我认不出有詹金斯的司机

Java 硒-don';我认不出有詹金斯的司机,java,selenium,jenkins,Java,Selenium,Jenkins,当我执行jenkins作业时,selenium测试总是会因此错误而失败 java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property 或者当我设置驱动程序路径时 not found /var/jenkins/.../C:/selenium/drivers/chromedrive 我有以下环境 1个在li

当我执行jenkins作业时,selenium测试总是会因此错误而失败

java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property
或者当我设置驱动程序路径时

not found /var/jenkins/.../C:/selenium/drivers/chromedrive
我有以下环境

  • 1个在linux上运行的jenkins服务器和selenium hub

  • 1个在Windows上运行的selenium节点

selenium节点正在使用以下行运行

java -Dwebdriver.chrome.driver=C:/selenium/drivers/chromedriver.exe -jar selenium-server-standalone-2.53.1.jar -port 5556 -role node -hub http://192.168.15.99:4444/grid/register -browser "browserName=chrome, version=ANY, maxInstances=10, platform=WINDOWS" 
Selenium hub和node可以看到彼此

为什么我不能执行测试?看起来selenium试图在集线器上执行,而不是在节点上执行。我如何配置不询问Chrome驱动程序位置

我的测试

public class TesteSelenium{

    private static final String APLICATION_CONTEXT = "/SYSA";
    WebDriver driver;
    HomePage home;

    @Before
    public void setUp() {
            Properties p = PropertiesUtil.getProperties();
            File file = new File(p.getProperty("webdriver.path"));
            System.setProperty(p.getProperty("webdriver.type"), file.getAbsolutePath());

            driver = new ChromeDriver();
                             driver.get(p.getProperty("host.address")+APLICATION_CONTEXT);

            LoginPage login = PageFactory.initElements(driver, LoginPage.class);
            login.setUsuarioTextField(p.getProperty("usuario.selenium.login"));
            login.setSenhaPasswordField(p.getProperty("usuario.selenium.password"));
            home = login.submit();
    }       

    @After
    public void finish() {
            driver.close();
    } 
我使用属性文件

host.address = http://jbossserver:8080
usuario.selenium.login = USER_SELENIUM
usuario.selenium.password = 123123
webdriver.path = C:/selenium/drivers/chromedriver
webdriver.type = webdriver.chrome.driver

您的参数应该在命令行中的引号内。像这样:

java -Dwebdriver.chrome.driver="C:/selenium/drivers/chromedriver.exe"

您的参数应该在命令行中的引号内。像这样:

java -Dwebdriver.chrome.driver="C:/selenium/drivers/chromedriver.exe"

远程运行Selenium测试的代码略有不同

public void setUp()引发畸形的异常{
Properties p=PropertiesUtil.getProperties();
//File File=新文件(p.getProperty(“webdriver.path”);
//System.setProperty(p.getProperty(“webdriver.type”)、file.getAbsolutePath();
DesiredCapabilities=DesiredCapabilities.chrome();
//驱动程序=新的ChromeDriver();
WebDriver=新的RemoteWebDriver(新的java.net.URL(“http://seleniumHubIp:4444/wd/hub(能力),;
driver.get(p.getProperty(“host.address”)+应用程序上下文);
LoginPage login=PageFactory.initElements(驱动程序,LoginPage.class);
setUsuarioTextField(p.getProperty(“usuario.selenium.login”);
login.setSenhaPasswordField(p.getProperty(“usuario.selenium.password”);
home=login.submit();
}       

我的错误是编写在远程selenium节点上运行本地测试的代码

远程运行Selenium测试的代码略有不同

public void setUp()引发畸形的异常{
Properties p=PropertiesUtil.getProperties();
//File File=新文件(p.getProperty(“webdriver.path”);
//System.setProperty(p.getProperty(“webdriver.type”)、file.getAbsolutePath();
DesiredCapabilities=DesiredCapabilities.chrome();
//驱动程序=新的ChromeDriver();
WebDriver=新的RemoteWebDriver(新的java.net.URL(“http://seleniumHubIp:4444/wd/hub(能力),;
driver.get(p.getProperty(“host.address”)+应用程序上下文);
LoginPage login=PageFactory.initElements(驱动程序,LoginPage.class);
setUsuarioTextField(p.getProperty(“usuario.selenium.login”);
login.setSenhaPasswordField(p.getProperty(“usuario.selenium.password”);
home=login.submit();
}       
我的错误是编写在远程selenium节点上运行本地测试的代码