【问题标题】:Selenium don't recognize driver with jenkinsSelenium 无法识别带有詹金斯的驱动程序
【发布时间】:2016-07-05 21:40:36
【问题描述】:

当我执行 jenkins 作业时,硒测试总是失败并出现此错误

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

我有以下环境

  • 在 linux 上运行的 1 个 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 可以互相看到。

为什么我不能执行测试?看起来硒试图在集线器上执行,而不是在节点上。如何配置为不询问 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 selenium jenkins


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      public void setUp() throws MalformedURLException {
                      Properties p = PropertiesUtil.getProperties();
                      //File file = new File(p.getProperty("webdriver.path"));
                      //System.setProperty(p.getProperty("webdriver.type"), file.getAbsolutePath());
                      DesiredCapabilities capability = DesiredCapabilities.chrome();
                      //driver = new ChromeDriver();
                      WebDriver driver = new RemoteWebDriver(new java.net.URL("http://seleniumHubIp:4444/wd/hub"), capability);
                      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();
              }       
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-04
        • 1970-01-01
        • 2017-06-05
        • 1970-01-01
        • 2014-09-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多