![](/img/trans.png)
[英]Selenium Edge driver not initializing when called from ant process - java
[英]How to prevent null return when initializing driver in selenium using java
我需要在初始化驱动程序类时防止“空”返回。 下面是我的代码。 另外,我需要检查驱动程序是否为空,然后在不启动驱动程序的情况下启动驱动程序,而是保留当前启动的驱动程序实例。 使用Java。
公共类 InitializeDriver {
private static WebDriver driver = null;
@BeforeTest
public static WebDriver getDriver() {
if (null == driver) {
System.setProperty("webdriver.gecko.driver", "path.to.driver");
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
}
return driver;
}
}
如果它为空,你想返回什么? 您可以将 null 检查包装在while
循环中,直到它正确初始化。
不,你做错了。
private static WebDriver driver = null;
驱动程序 --> 类变量(静态变量)
WebDriver driver = new FirefoxDriver();
驱动程序 --> 局部变量(仅在此方法上访问)
它们具有不同的作用域,因此当您在其他方法中使用driver
时,您使用的是第一个,即静态变量。
怎么修:
private static WebDriver driver; //default is null
@BeforeTest
public static WebDriver getDriver() {
// check null if you want to lazy creation, if not, just remove if()
if (null == driver) {
System.setProperty("webdriver.gecko.driver", "path.to.driver");
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
}
return driver;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.