2015-02-06 67 views
0

我们点击链接/按钮如何使用Selenium处理弹出窗口? (“driver.switchTo()窗口(窗口句柄);”没有一贯的工作)

我使用下面的代码之后面临的一些问题,在切换到新窗口切换到新窗口。

elem.click(); 
for (String winHandle : driver.getWindowHandles()) { 
driver.switchTo().window(winHandle); } 

观察发现脚本运行不一致,这会,如果我得到了一些一致的代码切换到新窗口是巨大的。我觉得在切换到新窗口时出现同步问题。

+2

你有没有试过等一下?也许窗口不在那里,当你检查它在那里 – mhlz 2015-02-06 11:20:02

+0

请点击元素和窗口打开之前使用等待。 – 2015-02-06 11:22:15

+1

请使用建议的@HelpingHands等待,并尝试上传所有可能的代码和操作的相应HTML代码段。 – 2015-02-06 12:16:14

回答

0

如果@HelpingHands建议将无法正常工作的问题可能就在于多个处理程序同时 存在下面的代码可能会有所帮助: 当你创建驱动程序,请为了节省拨付处理器

driver = new FirefoxDriver(profile); 
driver.get(uri); 
MainWinHandler = driver.getWindowHandle(); 

然后开关

for(String winHandle : driver.getWindowHandles()){ 
    if(!winHandle.equals(MainWinHandler)) 
     driver.switchTo().window(winHandle); 
} 
+0

感谢您的回复它现在的作品.. 即使添加等待点击元素之后和窗口打开工程,但不稳定的加载页面 – 2015-02-10 07:14:28

0

试图在使用以下提及格式

`driver = new FirefoxDriver(profile); 
driver.get(uri); 
String parentWindowHandlerP = driver.getWindowHandle(); 
elem.click(); 
while (driver.getWindowHandles().size() < 2) { 
Thread.sleep(500); 
} 
Set<String> handles = driver.getWindowHandles(); 
for (String windowHandle : handles) { 
if (!windowHandle.equals(parentWindowHandlerP)) { driver.switchTo().window(windowHandle); 
} 
}`