【发布时间】:2014-07-07 07:17:01
【问题描述】:
我们有一个静态变量来初始化 Selenium WebDriver 中的驱动程序。
public static WebDriver driver;
这个变量在一个类(DriverInit)中声明,并在各种测试计划(Test Classes)的“@BeforeClass”中初始化。初始化的变量(驱动程序)将在整个项目中用于各种可重用的函数和@test 方法。驱动程序将在@QAfterClass 关闭/退出
这适用于脚本的非并行执行。使用静态变量来初始化驱动程序是否会以任何方式影响并行执行?
例如:
public class DriverInit { (using remote webdriver, browser name will be read from XML)
public static WebDriver driver;
public DriverInit() {
switch (browser) {
case "IE" : driver = ....
case "Firefox" : driver = ....
}
}
}
public class TestClass {
@BeforeClass
public void BeforeClass() {
DriverInit driver = new DriverInit();
}
@Test
public void Test1() {
DriverInit.driver.findElementBy();
Reusable.func1();
}
}
Public class Reusable {
public WebElement r1;
public Reusable() {
r1 = DriverInit.driver.findElementBy(..);
}
public void func1() {
r1.findElementBy(..);
}
}
【问题讨论】: