2016-02-02 30 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);