我是硒测试的新手。所以忍受我。 我有一个网页,当我点击一个按钮,打开一个新的浏览器窗口,我必须在那里填写一些东西。我能够到第一部分(选择按钮并打开新的浏览器窗口)。
driver.findElement(By.xpath("//xpath/to/button/id")).click();
但是当我尝试填充新弹出的浏览器中的内容时会出现问题。我使用相同的驱动程序(可能这可能是问题)。当我打印当前的url路径driver.getCurrentUrl();它显示了前一个url(不是重定向的url)。如何将新打开的浏览器设置为驱动程序
有人可以帮我这个(任何教程都会很好)。提前致谢
答案 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以及其他资源来了解如何完成您想要做的事情。