我想用selenium WebDriver在Java中實現一個方法'waitForNewWindow'。這個方法就是等待檢查一個新窗口是否打開。如果在指定的時間內打開一個新窗口,我需要返回true,否則返回false。在selenium webdriver中實現'waitForNewWindow'
公共布爾waitForNewWindow(目標字符串){
try {
Thread.sleep(30000);
if(driver.switchTo().window(target)!=null) {
log.info("New window is opened");
return true;
}
}catch(Exception e) {
log.debug(e);
return false;
}
return true;
}
但在這裏,我不想用了Thread.Sleep(時間)。等待時間需要指定如下:
WebDriverWait wait = new WebDriverWait(driver,TIMEOUT);
此外,在上面的代碼中,控制切換到新的窗口,這是不期望的。有人可以提供關於如何實施我的要求的答案嗎?
只是一個想法,而不是控制驅動程序到一個新的選項卡,然後檢查null它可以做的driver.getWindowHandle()。length()> 1.如果你能這樣會給你一些很好的吞吐量。 –
我嘗試使用driver.getWindowHandle()。length(),但不知道它爲什麼返回值爲'38'。對於語句'log.info(「當前窗口數量的值是:」+ wd.getWindowHandle()。length());',我得到的結果是'當前窗口數量的值是:38'。 – Sree
對不起,它將是:driver.getWindowHandles()。size()。它應該返回兩個,如果你有兩個窗口。你可以試試看嗎? –