Selenium Webdriver无法给出JavaScript弹出窗口句柄

时间:2018-01-08 11:06:22

标签: javascript selenium selenium-webdriver

我有一个网页,其中有一个按钮,当点击时,弹出一个窗口表单,我必须选择一些值。我目前正在使用IE浏览器和selenium 2.53库来自动化这个流程。现在我的问题是我无法切换到这个弹出窗口,因为我没有得到任何窗口句柄,并且每次只显示一个父句柄。

我也尝试了警告/弹出窗口切换,但是仍然通过父页面上的按钮调用此弹出窗口无法识别,因此无法在此弹出页面中执行任何操作。

Set<String> winhandle= driver.getWindowHandles();
    System.out.println(winhandle);
    for (String handle : driver.getWindowHandles()) 
    {
        System.out.println(handle); 

        String newURL = driver.getTitle();
        System.out.println(newURL); 
      }

此致 尼尔

2 个答案:

答案 0 :(得分:0)

在您的代码中,您实际上从不迭代其他窗口。

为了正确打印所有窗口的句柄(包括弹出窗口),请尝试修改代码:

Set<String> winhandle = driver.getWindowHandles();
for (String handle : driver.getWindowHandles()) {
    driver.switchTo().window(handle);  // This line was missing. It tells the driver to operate on a different window
    System.out.println(handle); 
}

然后 - 经过测试 - 只要你在正确的窗口中,就可以打破循环。

这对你有用吗?

答案 1 :(得分:0)

它很奇怪,但现在确实使用窗口句柄和switchTO的相同代码与chrome浏览器一起工作正常并且它不能用于IE浏览器。我不知道如何在IE浏览器中修复它,但在Chrome浏览器中工作得很好。

的问候, Nir