2013-04-24 35 views
0

是否考慮下面的代碼:檢查硒的webdriver指向一個窗口或不

getCurrentUrl(driver); 
driver.close(); 
getCurrentUrl(driver); 

public void getCurrentUrl (WebDriver driver) { 
    if (driver window is not closed) 
     System.out.println(driver.getCurrentUrl()); 
    else 
     System.out.println("Window is not available"); 
} 

請讓我知道如何執行「驅動程序窗口未關閉」檢查在Java中。

回答

1

嗯...考慮這只是一個猜測。但我覺得當你關閉它後調用driver變量時,你可以得到NullPointerException,因爲它會是null

但是無論如何。我會這樣實現它:

public void getCurrentUrl (WebDriver driver) { 
try { 
    System.out.println(driver.getCurrentUrl()); 
} catch (Exception e) { // the most top one 
    System.out.println("Window is not available"); 
    } 
} 

有可能更好和更乾淨的方式來做到這一點。但我不是Java程序員,我的直覺告訴我這會起作用

+0

你說得對。當沒有驅動程序實例時,我們肯定會得到'NullPointerException'。但我的問題是可以檢查像'Thread.alive'這樣的Web Driver實例的'alive'狀態嗎? – Manigandan 2013-04-24 09:10:58

+0

@Manigandan有沒有更好的方式來做到這一點,但你可以創建一個問題[這裏](http://code.google.com/p/selenium/issues)要求一個新的功能,而不是使用髒的getCurrentUrl ()' – e1che 2013-04-24 09:51:02

+1

它的工作,但必須有另一種優雅的方式做到這一點... – 2013-04-24 12:05:57