2013-05-31 52 views
2

我試圖在IE上運行不同的瀏覽器模式,使用c#的硒。這裏有一些代碼:如何在IE上用selenium更改瀏覽器模式?

var ieWebDriver = new InternetExplorerDriver(@"PATHTOWEBDRIVER"); 
ieWebDriver.Keyboard.SendKeys(Keys.F12); 

ieWebDriver.Keyboard.SendKeys(Keys.LeftAlt); 
ieWebDriver.Keyboard.SendKeys("b"); 
ieWebDriver.Keyboard.SendKeys(Keys.NumberPad7); 

我可以打開開發人員工具(f12),但我無法更改瀏覽器模式。 IE是否阻止了這種安全性?如果是這樣,有沒有其他的方式來使用較低的IE版本來呈現內容?

感謝

回答

3

號的IEDriver將推出無論是在機器上安裝IE。

更改「瀏覽器模式」並不是您要更改的版本的真實表示。 IE7標準模式下的IE9不是IE7的真正版本。

因此,你陷入了一個問題。你想測試不同版本的IE,你是怎麼做到的?

問題是,Windows讓我們在任何時候都只能在Windows PC上安裝一個IE版本。是的,有一些黑客和程序可以獲得多個版本(IE5及以上版本)在單臺機器上運行,但它們都是黑客。那些不能很好地工作的黑客,即使這樣,你甚至不能給IEDriverServer靈活性來做到這一點。

你將不得不有獨立的Windows機器。

解決方法再次成爲黑客,它將在註冊表中設置瀏覽器仿真模式,如SO question中所述。

請注意,在上述問題中,接受的答案是而不是去工作,但其他答案可能會做。請注意對該答案的評論,由IEDriver本身的維護人員提供,建議強烈反對

另一個解決方法,我沒有測試過,也許使用原生C#Keyboard.SendKeys,如MSDN中記錄的here。我不確定它是否會起作用(不要認爲有人曾經說過),但這是另一種選擇。

+0

我認爲設置「browserMode」是否有所作爲。我從手動測試網站知道,調整瀏覽器模式實際上給我的結果,我期望從瀏覽器,當我把它設置爲該模式。也許在某些情況下,它不是一個真實的表示,但沒有一個具體的例子,這只是一個全面的陳述,我不認爲它是事實。 – djangofan

+1

@djangofan,我不同意,恭敬地說,這篇文章解釋了它比我所能做到的要好得多:http://stackoverflow.com/questions/10249454/how-well-does-ie7-8-mode-in-ie9-compare -to-actually-running-ie7-8/11418046#11418046 – Arran

+0

偉大的事實鏈接。感謝您提供它。除非有事實依據,否則我不會相信這一主張。 – djangofan

0

Selenium支持同一瀏覽器的不同版本的跨瀏覽器測試,但不能通過在F12工具中以瀏覽器模式切換版本來實現。

https://code.google.com/p/selenium/wiki/Grid2

您可以設置虛擬機與不同版本的IE瀏覽器的工作如硒節點和用Selenium集線器來連接它們。假設您有一臺安裝了IE9的Windows 7虛擬機。您將在那裏啓動一個Selenium節點,並指定它接受IE9測試的請求。然後,您將爲版本9創建InternetExplorerDriver,連接到集線器並運行測試。集線器使用IE9找到節點並在那裏運行測試。

相關的帖子在這裏: https://stackoverflow.com/a/8524216/1080590

這是你想要一臺機器上做什麼當然是不同的,但它更可靠,並防止您從本地的IE實例的額外的管理。

相關問題