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

时间:2016-02-02 05:42:19

标签: c# internet-explorer selenium tabs

当我的应用程序打开新标签页时,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中的“可信站点”列表中,但仍然没有。

感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:1)

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

在遇到相同问题后,我一直在研究此问题,而我尝试过的任何尝试都未能解决问题! 在 regedit 中,我添加了'BF_Cache'->'iexplorer.exe',并在区域0、2、3、4中添加了设置为'3'的'2500'(已在区域1中存在) )并设置“保护模式”为已启用,但是没有运气...我的新窗口将通过Selenium正确打开,但是在调试时,我确认只有一个句柄可用!

但是...在我几乎放弃之后-我决定以 管理员。好像是通过 Magic 硒发现了更多 比一个窗户把手!

答案 1 :(得分:0)

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

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