请不要将此视为一个重复的问题,而不是完全阅读。
情境:
我必须单击应用程序主页上的链接,这将打开新窗口。打开新窗口后,我需要在该页面上的Web元素上执行一些操作。这显然是你们每个人经常处理的常见情况。
问题: 单击新窗口后,将打开一个新窗口。当执行driver.getWindowHandles()时,它最初会给我2个(父和子)窗口。但是在一两秒内,即使新窗口仍然打开,如果我再次检查windowHandles,它将只返回一个(parentWindow)。
总结一下,驱动程序最初知道正在打开一个新窗口,但不知怎的,它会在一秒左右的时间内丢失第二个窗口的细节,并且只显示一个窗口。由于这个原因,不可能切换到新窗口。显然在CHROME中可以正常工作,但这必须在IE上进行测试。
我的代码:
sysout(driver.getWindowHandle()); //给出:[WINDOW_PARENT]
- 点击链接打开一个新窗口。
系统输出(driver.getWindowHandles()); //给出:[WINDOW_PARENT,WINDOW_CHILD]
Thread.sleep代码(1000);
系统输出(driver.getWindowHandles()); //给出:[WINDOW_PARENT] - 孩子丢失
-
试图:
IE-8/10 / 11- 32位
Selenium-java - 很多人尝试了所有开始2.4
答案 0 :(得分:0)
有效。 它只是IE上的保护模式设置。我将其更改为所有安全区域的相同,它完美地工作。
在更改之前不久检测到多个窗口的原因是:由于点击链接和IE上的保护模式之间的时间跨度很短。
相信我们IE和硒的问题,你应该检查的第一件事是保护模式设置