2011-09-21 68 views
1

我目前遇到了在Internet Explorer中測試期間未啓動窗口的問題。我使用Selenium-RC 2.6.0,在C#中編寫我的測試並使用NUnit啓動它們。Internet Explorer在測試期間不會啓動新窗口

我所有的測試都在Firefox和Chrome上運行,但在Internet Explorer 9中,當硒執行一個鏈接點擊(鏈接使用Javascript啓動一個新窗口)時,窗口不出現。這個窗口在Firefox和Chrome中顯得很好。

打開彈出窗口阻止程序關閉,啓用保護模式關閉,接受所有Cookie打開。 Windows防火牆已關閉。任何人都可以想到其他可能導致它的事嗎?或者如果這是一個已知的錯誤?我已經在SO和Google上進行了大量搜索,但尚未發現任何有用的結果。

編輯:爲元素增加了代碼,我試圖用

<a id="supervisor" class="topmenu" onclick="switchSupervisor();" href="javascript:void(0);"> 
<span style="font-size: 13px;"> 
<strong>.</strong> 
Supervisor 
</span> 
</a> 

謝謝你的幫助的答案,諷刺的是,雖然沒有發佈的解決方案的工作我的問題是通過微軟更新解決這解決了在最新更新中修復過的IE中顯然是bug或奇怪的功能。現在我可以通過點擊或火災事件輕鬆啓動它。

+0

更新:一直在試圖找到一種解決方法,顯而易見的是直接調用JavaScript而不是點擊左右。試圖Selenium.GetEval(「this.browserbot.getUserWindow()。javaScript()」);但沒有骰子,顯然這是另一件只適用於FF而不適用於IE的東西。仍在尋找建議! – FooBar

+0

你試過Deitro的解決方案嗎? –

+0

在另一個項目當中,但我會盡量抽出時間來測試它 – FooBar

回答

3

帶有Selenium的IE有一個煩人的錯誤,如果鏈接元素有任何嵌套元素並且沒有文本,元素將不會正確點擊。

例如:

<a id="clickme"><img src="something" /></a> 

在IE中,下面不工作:

driver.FindElement(By.Id("clickme")).Click(); 

的解決方法是點擊最低的元素在DOM樹中的鏈接元素:

driver.FindElement(By.Id("clickme")).FindElement(By.TagName("img")).Click(); 
//or 
driver.FindElement(By.CssSelector("#clickme img")).Click(); 
+0

我使用的是Selenium RC,它在我看來就是Selenium Webdriver代碼。有沒有機會知道RC的代碼?它發生在我身上,直接運行JavaScript也會工作,現在正在尋找一種方法。 – FooBar

+0

硒的RC應該非常相似。重要的是選擇器,我覺得像selenium.click(「css =#clickme img」) – prestomanifesto

+0

感謝您的更新,這不能解決我的問題,因爲沒有嵌套的元素,我已經發布代碼上面的標籤。 – FooBar

2

嘗試使用

Selenium.FireEvent(@"css=a#supervisor", "click")

相關問題