![](/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.