Selenium在使用弹出窗口时打开多个窗口

时间:2012-11-03 07:23:52

标签: selenium selenium-webdriver

场景是我需要填写一个表单并单击一个按钮,一旦我点击按钮,就会显示一个新的弹出窗口。 现在我的问题是当我点击一个按钮时;打开3或4个空白窗口。

错误之前的脚本如下:

//To click on "Check Availability" Button waiter.until(ExpectedConditions.presenceOfElementLocated(By.id("ctl00_ContentPlaceHolder1_btnCheckAvailbility"))); driver.findElement(By.id("ctl00_ContentPlaceHolder1_btnCheckAvailbility")).click(); sleep(4000);

注意:

  1. 当我尝试手动执行时,它可以正常工作
  2. 当我使用Firefox运行相同的脚本时,它工作正常但不幸的是我只能在IE上测试此应用程序。
  3. 我正确地声明了“IEDriverServer.exe”,因此这不是问题。
  4. 所以...朋友对这个问题有任何帮助或想法???

2 个答案:

答案 0 :(得分:0)

嗯... 似乎有点奇怪,因为你按下按钮一次。 我会建议你按下按钮后处理新窗口的这种方法:

   //Store the current window handle
        String winHandleBefore = driver.getWindowHandle();

        //Perform the click operation that opens new window

        //Switch to new window opened
        for(String winHandle : driver.getWindowHandles()){
            driver.switchTo().window(winHandle);
        }

        // Perform the actions on new window

            //Close the new window, if that window no more required
    driver.close();

        //Switch back to original browser (first window)

        driver.switchTo().window(winHandleBefore);

        //continue with original browser (first window)

答案 1 :(得分:-3)

经过多次头脑风暴后,我发现如果我们将操作系统升级到Windows 7,那么这个问题就解决了。