如何在不确定的时间显示弹出窗口?

时间:2017-01-26 23:54:23

标签: java selenium popup automated-tests alertdialog

我正在尝试自动化测试用例。由于弹出消息在不确定的时间出现,因此测试用例失败,这很困难。有时弹出窗口会在没有单击的情况下显示,有时则会在弹出窗口显示之前单击5-6次。我找不到弹出窗口没有id或XPath。

2 个答案:

答案 0 :(得分:0)

如果弹出窗口是基于Windows的,则使用AutoIT库。 如果它是Web弹出窗口,那么您可以通过以下代码来处理它

Set<String> set =  driver.getWindowHandles();
List<String> list = new ArrayList<>(set);

// store your main window handle in variable
String mainWindow = list.get(0);

// To close all unwanted popup
for(int i =1; i <list.size(); i++)
{
    String unwantedPopup = list.get(i);
    driver.switchTo().window(unwantedPopup);
    driver.close();
}

// Switch back to your main window
driver.switchTo().window(mainWindow);

答案 1 :(得分:0)

我找到了对我有用的解决方案。

    Thread.sleep(5000); //wait for the modal message to appear
    String winHandleBefore = driver.getWindowHandle();
    driver.findElement(By.xpath("xpath")).click();
    Thread.sleep(2000);
    driver.switchTo().window(winHandleBefore);