2016-07-05 4 views
0

와 드라이버를 인식하지 못하는, 셀레늄 테스트는 항상이 오류셀레늄은 젠킨스

java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property 

에 실패하거나 I 드라이버 경로를 설정할 때

not found /var/jenkins/.../C:/selenium/drivers/chromedrive 

나는이 환경에 따라

  • 1 젠킨스 서버와 리눅스에서 실행되는 셀레늄 허브

  • 1 셀렌 노드가 Windows에서 실행 중입니다.

셀레늄 노드는 서로를 알 수 후속 라인

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

셀레늄 테스트를 원격으로 실행하는 코드는 약간 다릅니다.

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"