2016-02-02 16 views
2

硒的webdriver的Internet Explorer 11的时候我的应用程序打开一个新的标签也没有创造一个新的窗口句柄。C#IE11硒webdriver的,没有新的窗口,新的标签处理

的问题是类似this,这是与窗口的问题处理在几分之一秒内消失,但在我的情况下,一个新的窗口句柄没有摆在首位,甚至创建。

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

我试着使用:

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

但硒webdriver的焦点停留在第一个选项卡上,因为我相信它不是创建新标签新的句柄。

此外,尝试这样做:

driver.SwitchTo().Window(driver.WindowHandles[1]); 

并导致一个“超出范围”的例外和“索引超出范围必须为非负数且小于集合的大小。”

如果我改变[1]到[0],那么很明显,我没有因为专注正好被设置到第一片得到的异常。

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

我试着重置IE11,然后只改变Selenium网站上描述的设置,包括添加注册表项,我用氦气的解决方案找到了here

而且,我读到补充说,我在IE中打开到受信任的站点列表中的网站的一些建议,但仍然没有去。

任何帮助表示赞赏。谢谢。

+0

有在一年后,同样的问题。无论您打开多少标签,WindowHandles都只包含1个值。但是如果你打开新的窗口,它会包含更多的值。 – Mardok

回答

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);