所以我有一個硒webdriver登錄我的網站,並從那裏我點擊一個按鈕,打開第二個窗口。我用下面這段代碼切換到新窗口硒檢查一個窗口當前是否打開
String winParent = driver.getWindowHandle();
for (String winHandle : driver.getWindowHandles()) {
driver.switchTo().window(winHandle);
}
現在我運行一些自動化是第二窗口上。一旦完成,我將按下保存按鈕,這將關閉當前窗口。如果窗口沒有關閉,意味着我在頁面上有一些錯誤,我需要循環回去修復它。
driver.findElement(By.id("btnSave")).click();
if (isAlive(driver) == false) {
//break and exit
System.out.println("cic" + name);
finalString = finalString + "cic: " + name;
break;
}
public Boolean isAlive(WebDriver driver) {
try {
driver.getCurrentUrl();//or driver.getTitle();
return true;
} catch (Exception ex) {
return false;
}
}
的程序工作正常時,它捕獲錯誤和窗口不會關閉。但只要一切都清楚並且窗口關閉,它就會輸入上面的if語句並顯示此錯誤。
無法從渲染器接收消息。
我相信我沒有檢查窗口是否被正確關閉。
編輯:經過一些調試後,似乎一旦窗口關閉,程序就不能真正知道下一步該做什麼。 http://i.imgur.com/l8nsPPr.png
可能此鏈接對您有幫助嗎? https://stackoverflow.com/questions/27616470/webdriver-how-to-check-if-browser-still-exists-or-still-open – SomeStudent