【发布时间】:2016-02-02 05:42:18
【问题描述】:
当我的应用打开新选项卡时,用于 Internet Explorer 11 的 Selenium Webdriver 不会创建新窗口句柄。
问题类似于 this ,这是窗口句柄在几分之一秒内消失的问题,但在我的情况下,甚至一开始都没有创建新的窗口句柄。
我使用该链接中的测试代码来检查消失的窗口句柄,但它从未在打开新选项卡时创建另一个窗口句柄,因此测试只显示第一个控制台输出,而不显示第二部分。
我尝试使用:
driver.SwitchTo().Window(driver.WindowHandles.Last());
但 Selenium Webdriver 的焦点停留在第一个选项卡上,因为我相信它不会为新选项卡创建新句柄。
另外,试过这个:
driver.SwitchTo().Window(driver.WindowHandles[1]);
这会导致“超出范围”异常和“索引超出范围。必须为非负数且小于集合的大小。”
如果我将 [1] 更改为 [0],那么显然我不会得到异常,因为焦点只是设置在第一个选项卡上。
根据我对我提供的链接中的测试代码的测试以及我自己的尝试,我认为没有创建新的窗口句柄。
我尝试重置 IE11,然后只更改 Selenium 网站上描述的设置,包括添加注册表项,我使用 Helium 的解决方案来找到 here。
另外,我阅读了一些建议,将我正在打开的网站添加到 IE 中的受信任网站列表中,但仍然没有成功。
感谢任何帮助。谢谢。
【问题讨论】:
-
一年后遇到同样的问题。无论您打开了多少选项卡,WindowHandles 都只包含 1 个值。但如果您打开新窗口,它将包含更多值。
标签: c# internet-explorer selenium tabs