java - 如何使用 System.set 在类级别初始化 chrome 驱动程序...?

标签 java webdriver testng

我一直在使用 Firefox 来运行我的测试用例。但现在我想使用 Chrome。我想在类级别初始化 chrome,就像我使用 Firefox 一样。但是在类级别设置系统属性会出现错误,我该怎么办?使用属性文件可以工作,如果可以,如何?

public class BaseClass {
System.setProperty("webdriver.chrome.driver","/home/Desktop/chrome32/chromedriver"); 
public static WebDriver driver = new ChromeDriver();

public void test(){
driver.get("http://asdf.com");

----
---
 }

}

最佳答案

你可以使用静态初始化 block 来完成它,如下所示:

public class BaseClass {

  static {
    System.setProperty("webdriver.chrome.driver","/home/Desktop/chrome32/chromedriver");
  }

  protected WebDriver driver = new ChromeDriver();

  @Test
  public void test(){
    driver.get("http://asdf.com");
  }
}

由于您没有说明您正在使用哪个测试框架,您可以在 TestNG 中这样做(无论如何我都会推荐):

public class BaseClass {

  @BeforeSuite
  public void setupChromeDriver() {
    System.setProperty("webdriver.chrome.driver","/home/Desktop/chrome32/chromedriver");
  }

  public static WebDriver driver = new ChromeDriver();

  public void test(){
    driver.get("http://asdf.com");
  }
}

@BeforeSuite 注释确保该方法在测试套件的第一个测试运行之前执行,因此无论如何这应该足够早。

关于java - 如何使用 System.set 在类级别初始化 chrome 驱动程序...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15757674/

相关文章:

java - 如何使用java在旋转时保留图像的原始颜色

java - Storm : How to pass String Array from one bolt to another?

java - 如何使用 selenium webdriver 在新网页中查找元素?

java - 有什么方法可以分块而不是全套来划分和运行testng测试

Java流映射

java - System.currentTimeMillis() 是 Java 中时间性能的最佳衡量标准吗?

python - 从函数添加 driver.get() 值时,Selenium 参数无效

windows - Jenkins : Selenium GUI tests are not visible on Windows

gradle - Gradle-配置测试包括从属性文件

java - Selenium POM 和 TestNG NullPointer 异常