有人可以对我的查询提出一些建议吗?
查询: 在我的应用程序中,有一个经常出现的弹出窗口,但有时它不会出现。 我必须检查弹出窗口是否存在,然后对其执行操作。此弹出窗口也需要一些时间才能显示在页面中。
我的解决方案: 首先,我通过明确的等待条件等待弹出窗口。 然后通过if循环检查是否在页面上显示弹出窗口。 如果显示然后执行操作,否则执行其他操作。
现在,如果弹出窗口没有出现,我就会超时。
这是我的代码:
FluentWait<WebDriver> wait_1 = new FluentWait<WebDriver>(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class)
.ignoring(TimeoutException.class);
//getting time out exception if pop up does not exists
wait_1.until(ExpectedConditions.visibilityOfElementLocated(By.id("some id")));
if(driver.findElement(By.id("some id")).isDisplayed()) {
System.out.println(driver.findElement(By.id("some id")).getText());
//click some elements
}
else{
// `enter code here`
}
答案 0 :(得分:0)
您可以尝试类似
的内容int count = 0;
do {
if (driver.getWindowHandles().size() > 1) {
String parentWindow = driver.getWindowHandle();
Set<String> windowHandles = driver.getWindowHandles();
Iterator<String> iterator = windowHandles.iterator();
while (iterator.hasNext()) {
String handle = iterator.next();
if (!handle.contains(parentWindow)) {
driver.switchTo().window(handle);
// Alert is present do something
}
}
driver.switchTo().window(parentWindow);
break;
}
count++;
} while (count < 100);
这将等到警报出现或计数达到100.您可以根据您的要求更改计数值。