无法使用 ChromeDriver 在 Eclipse 中 运行 TestNG 测试用例

Unable to run TestNG test case in Eclipse with ChromeDriver

我已经编写了以下代码以在 chrome 浏览器中打开一个站点并验证其标题。但是当使用 System.setProperty() 设置 ChromeDriver 路径时,它给我语法错误,当我评论该行时,我得到:

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();          
    }
  }  

您不能全局定义 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

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

您应该考虑使用 https://github.com/bonigarcia/webdrivermanager,它将为您完成工作:

ChromeDriverManager.getInstance().setup();

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

@BeforeClass
public void setup() {
    WebDriver driver = new ChromeDriver();
}