C#IE11 selenium webdriver,没有带有新选项卡的新窗口句柄

C#IE11 selenium webdriver,没有带有新选项卡的新窗口句柄,c#,internet-explorer,selenium,tabs,C#,Internet Explorer,Selenium,Tabs,当我的应用程序打开新选项卡时,Selenium Webdriver for Internet Explorer 11未创建新的窗口句柄 这个问题与类似,它是一个窗口句柄在几分之一秒内消失的问题,但在我的例子中,一开始甚至没有创建新的窗口句柄 我使用该链接中的测试代码检查窗口句柄是否消失,但在打开新选项卡时,它从未创建另一个窗口句柄,因此测试仅显示第一个控制台输出,而从未显示第二部分 我尝试使用: driver.SwitchTo().Window(driver.WindowHandles.Last

当我的应用程序打开新选项卡时,Selenium Webdriver for Internet Explorer 11未创建新的窗口句柄

这个问题与类似,它是一个窗口句柄在几分之一秒内消失的问题,但在我的例子中,一开始甚至没有创建新的窗口句柄

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

我尝试使用:

driver.SwitchTo().Window(driver.WindowHandles.Last());
但是SeleniumWebDriver的焦点仍然停留在第一个选项卡上,因为我相信它不会为新选项卡创建新的句柄

此外,我还尝试了以下方法:

driver.SwitchTo().Window(driver.WindowHandles[1]);
这将导致“超出范围”异常和“索引超出范围。必须为非负且小于集合的大小。”

如果我将[1]更改为[0],那么显然我不会得到异常,因为焦点刚刚设置为第一个选项卡

基于我对链接中的测试代码的测试和我自己的尝试,我相信没有创建新的窗口句柄

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

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


感谢您的帮助。谢谢。

这里有一个我设法使用的解决方法

您可以使用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);

希望这将有助于某人继续前进

我一直在研究这个问题后,有相同的问题,无论我尝试它没有解决它! 在regedit中,我添加了'BF_Cache'->'iexplorer.exe',在区域0,2,3,4中添加了'2500'设置为'3'(已存在于区域1中)&将'protected mode'设置为enabled,但没有运气。。。我的新窗口将通过Selenium正确打开,但调试时我确认只有一个句柄可用

但是。。。在我几乎放弃之后,我决定作为一名工程师运行VisualStudio 管理员。仿佛是施了魔法硒发现了更多 不止一个窗户把手


一年后有同样的问题。无论您打开了多少选项卡,WindowHandles仅包含1个值。但如果您打开新窗口,它将包含更多值。