C# IE11 硒网络驱动程序,没有带有新选项卡的新窗口句柄

本文关键字:选项 窗口句柄 新选项 IE11 网络 驱动程序 | 更新日期: 2023-09-27 18:32:59

适用于

Internet Explorer 11的Selenium Webdriver在我的应用程序打开新选项卡时不会创建新的窗口句柄。

问题与此类似,这是窗口句柄在

几分之一秒内消失的问题,但就我而言,甚至没有首先创建新的窗口句柄。

我使用该链接中的测试代码来检查消失的窗口句柄,但是当打开新选项卡时,它从未创建另一个窗口句柄,因此测试仅显示第一个控制台输出,而不显示第二部分。

我尝试使用:

driver.SwitchTo().Window(driver.WindowHandles.Last());

但是Selenium Webdriver的焦点停留在第一个选项卡上,因为我相信它没有为新选项卡创建新句柄。

另外,尝试了这个:

driver.SwitchTo().Window(driver.WindowHandles[1]);
这会导致"超出范围

"异常和"索引超出范围。必须是非负数且小于集合的大小。

如果我将 [1] 更改为 [0],那么显然我没有得到异常,因为焦点只是设置为第一个选项卡。

根据我对我提供的链接中的测试代码的测试以及我自己的尝试,我相信没有创建新的窗口句柄。

尝试重置IE11,然后仅更改Selenium网站上描述的设置,包括添加注册表项,我使用了Helium的解决方案

。另外,我

阅读了一些将我正在打开的网站添加到IE中的受信任站点列表中的建议,但仍然没有。

任何帮助,不胜感激。谢谢。

C# IE11 硒网络驱动程序,没有带有新选项卡的新窗口句柄

希望这会帮助某人前进......

在遇到同样的问题后,我一直在研究这个问题,无论我尝试什么都没有解决它!在注册表编辑器中,我添加了"BF_Cache"->"iexplorer.exe",在区域 0,2,3,4 中添加了设置为"3"的"2500"(区域 1 中已经存在(并将"保护模式"设置为启用但没有运气......我的新窗口可以通过Selenium正确打开,但是在调试时,我确认只有一个句柄可用!

但。。。在我几乎放弃之后 - 我决定将视觉工作室作为一个 管理员。好像通过魔术硒捡到还有更多 比一个窗口把手!

这是我设法使用的解决方法。

您可以使用javascript打开一个新窗口。它会给你把柄。

string javaScript = "window.open('" + url + "','_blank', 'resizable=yes, scrollbars=yes, titlebar=yes, width=1280, height=680, top=10, left=10');";
jsExecutor = (IJavaScriptExecutor)ieDriver;
jsExecutor.ExecuteScript(javaScript);