簡體   English   中英

使用java在selenium中初始化驅動程序時如何防止返回空值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM