我想用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()。它应该返回两个,如果你有两个窗口。你可以试试看吗? –