请不要在未完整阅读之前将其视为重复问题而忽略它。
场景:
我必须单击应用程序主页上的链接,这将打开新窗口。打开新窗口后,我需要对该页面上的 Web 元素执行一些操作。这显然是你们每个人都会遇到的常见情况。
问题: 单击新窗口后,将打开一个新窗口。当执行 driver.getWindowHandles() 时,它最初会给我 2 个(父窗口和子窗口)。但在一两秒内,即使新窗口仍然打开,如果我再次检查 windowHandles 它将只返回一个(父窗口)。
总而言之,驾驶员最初知道打开了一个新窗口,但不知何故,在一秒钟左右的时间里,它丢失了第二个窗口的详细信息,并表示仅存在一个窗口。并且由于这个原因无法切换到新窗口。显然在 CHROME 中工作正常,但这必须在 IE 上进行测试。
我的代码:
sysout(driver.getWindowHandle());//给出:[WINDOW_PARENT]
-- 单击链接打开一个新窗口。
sysout(driver.getWindowHandles());//给出:[WINDOW_PARENT,WINDOW_CHILD]
线程.sleep(1000);
sysout(driver.getWindowHandles());//给出:[WINDOW_PARENT] -- child 丢失了
--
尝试过:
IE-8/10/11- 32 位
Selenium-java - 从 2.4 开始几乎尝试了所有
最佳答案
它成功了。 这只是 IE 上的保护模式设置。一旦我将其更改为所有安全区域都相同,它就完美地工作了。
在没有进行此更改的情况下早些时候检测到多个窗口的原因是:因为单击链接和 IE 上的保护模式发挥作用之间的时间间隔很短。
相信我,无论 IE 和 selenium 出现什么问题,您首先应该检查的是保护模式设置
关于java - Selenium WebDriver 丢失 IE 中打开的新窗口的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41557027/