处理selenium中新打开的浏览器窗口

时间:2014-07-14 12:26:32

标签: java selenium

我是硒测试的新手。所以忍受我。 我有一个网页,当我点击一个按钮,打开一个新的浏览器窗口,我必须在那里填写一些东西。我能够到第一部分(选择按钮并打开新的浏览器窗口)。

driver.findElement(By.xpath("//xpath/to/button/id")).click();

但是当我尝试填充新弹出的浏览器中的内容时会出现问题。我使用相同的驱动程序(可能这可能是问题)。当我打印当前的url路径driver.getCurrentUrl();它显示了前一个url(不是重定向的url)。如何将新打开的浏览器设置为驱动程序

有人可以帮我这个(任何教程都会很好)。提前致谢

2 个答案:

答案 0 :(得分:1)

试试这个:

String baseWindowHdl = driver.getWindowHandle();
driver.findElement(By.xpath("//xpath/to/button/id")).click();
//Go to New Window
for (String winHandle : driver.getWindowHandles()) {
        driver.switchTo().window(winHandle);
    }
enter your code here for new window

// Close pop-up
    driver.close();

    // Switch back to base window
    driver.switchTo().window(baseWindowHdl);

答案 1 :(得分:0)

您需要确保使用Selenium处理自己的窗口。默认情况下,如果您有以下声明:

driver.open("some_url");
driver.getCurrentUrl(); // returns "some_url"
driver.open("some_other_url");
driver.getCurrentUrl(); // returns "some_other_url" 

从那里,您可以收集来自Selenium的open(),它会在同一窗口中打开。

您正在尝试使用另一个窗口进行操作。您可以使用several answers out there以及其他资源来了解如何完成您想要做的事情。