2016-09-16 189 views
0

我已经编写了下面的代码,用于在Chrome浏览器中打开一个站点并验证其标题。但使用时System.setProperty()设置ChromeDriver路径,它给了我语法错误,当我评论了线我得到:无法在Eclipse中使用ChromeDriver运行TestNG测试用例

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

我的代码:

import org.openqa.selenium.WebDriver; 
    import org.openqa.selenium.chrome.ChromeDriver; 
    import org.testng.Assert; 
    import org.testng.annotations.Test; 

    public class FirsttestNGFile { 
    String BaseURL = "http://newtours.demoaut.com/"; 
    System.setProperty("webdriver.chrome.driver", "E:\\Automation Jars\\chromedriver_win32\\chromedriver.exe"); -- If I comment this line, I get Illegal state Exception for chromedriver path; if not commented , I get syntax error 
    WebDriver driver = new ChromeDriver(); 

    @Test 
    public void verifyHomePageTitle() {  
    driver.get(BaseURL); 
    String ExpectedTitle = "Welcome: Mercury Tours"; 
    String ActualTitle = driver.getTitle(); 
    Assert.assertEquals(ExpectedTitle, ActualTitle); 
    driver.quit();   
    } 
    } 
+0

我也尝试过Project-> Clean;但是这并没有帮助 –

回答

1

不能定义System.setProperty全球。 使用下面的代码,并尝试:

WebDriver driver; 
@Before 
public void browser(){ 
System.setProperty("webdriver.chrome.driver", "D:\\Selenium\\CP-SAT\\Chromedriver\\chromedriver.exe"); 
driver = new ChromeDriver(); 
} 

@Test 
public void verifyHomePageTitle() {  

    String BaseURL = "http://newtours.demoaut.com/"; 
    driver.get(BaseURL); 
    String ExpectedTitle = "Welcome: Mercury Tours"; 
    String ActualTitle = driver.getTitle(); 
    Assert.assertEquals(ExpectedTitle, ActualTitle); 
    } 

@Test 
public void a() { 
    driver.get("https://www.google.co.in/?gfe_rd=cr&ei=6PDbV-qTAZHT8gecr4qQBA");  
} 

@After 
public void close(){ 
    driver.quit(); 
    } 
} 

如果您正在使用Junit然后用@Before或者如果你正在使用TestNG然后@BeforeTest

回复我以便进一步查询。 快乐学习。 :-)

+0

要小心:'@ Before'的TestNG相当于'@ BeforeMethod',而不是'@ BeforeTest',它在一组类之前被调用。 '@ BeforeSuite'->'@ BeforeTest' - >'@ BeforeClass' - >'@ BeforeMethod' – juherr

+0

谢谢Julien。 :-) –

+0

我现在正在尝试运行多个测试用例,但由于我已将Chromedriver的声明置于@beforeTest中,因此每次测试都使用驱动程序时出现编译错误,并且当我重新声明驱动程序时,它会打开一个新的Chrome窗口每次。我希望我能申报驱动程序一次,并且可以在我的测试方法中每次使用 –

0

更新在环境变量路径的镀铬驱动程序路径,然后尝试在脚本中使用下面的代码

@BeforeClass 
public void setup() { 
    WebDriver driver = new ChromeDriver(); 
} 
相关问题