2016-07-05 75 views
0

驅動程序,硒測試總是失敗,此錯誤硒不承認與詹金斯

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服務器和硒中樞

  • 在Windows上運行1個硒節點。

硒節點與後續的行運行

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 GRID console

爲什麼我不能執行測試?看起來就像硒試圖在集線器上執行,而不是在節點上執行。我如何配置不要求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 

回答

0

遠程運行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(); 
     }  

總結起來,我的錯誤是編寫代碼在遠程硒節點上運行本地測試。

0

你應該在命令行引號內的參數。像這樣:

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