2

我正在使用Selenium WebDriver和Ruby,並試圖創建將在IE8中測試的腳本。我無法找到如何設置iedriver在IE8模式下啓動或如何在webdriver啓動後將其切換到IE8的答案。我在Windows 7上,所以我只有IE9可用。我目前用來在IE9中啓動webdriver的代碼是使用Selenium WebDriver在Ruby中將IE9更改爲IE8

$driver = Selenium::WebDriver.for :ie 

任何幫助將不勝感激。我看起來很高和低,但無法找到任何回答這個問題。如果你需要我的額外信息,我會很樂意提供。非常感謝你。

+0

將它降級到IE8可能更容易,而不是試圖用WebDriver進行更改。 http://windows.microsoft.com/en-US/windows7/how-do-i-install-or-uninstall-internet-explorer-9 – nmunson

+0

謝謝我會調查這個,看看它是否會爲我工作。我仍然需要對IE9進行測試,因此如果需要將其降低到8,那麼這是一個令人不滿意的解決方案。如果可以同時安裝,我還必須弄清楚如何告訴它要啓動哪個版本的IE。 –

+0

Internet Explorer 8與Windows 7不兼容。我需要找到一種在IE8模式下使用IE9的webdriver的方法。 –

回答

6

如果你想告訴在運行時的IE版本,你可以使用DesiredCapabilities.

DesiredCapabilities ieCapabilities = null; 
    ieCapabilities = DesiredCapabilities.internetExplorer(); 
    ieCapabilities.setBrowserName("internet explorer"); 
    ieCapabilities.setVersion("Version Number"); 
    driver = new InternetExplorerDriver(ieCapabilities); 

欲瞭解更多信息有關DesiredCapabilities使用這個鏈接http://code.google.com/p/selenium/wiki/DesiredCapabilities

在評論中你說我需要IE 8和9.實際上這是不可能的,Windows目前支持在一個盒子裏只安裝一個IE版本。 IEDriver使用安裝的IE版本啓動。

如果你想使用多個版本的IE來測試,那麼更好的選擇去Windows Virtual Machines。您可以使用RemoteWebdriver實例與虛擬機通話。

1

實際上,Selenium WebDriver目前不支持此功能。目前針對IE模式的增強請求將作爲來自Manigandan的評論中引用的DesiredCapabilities功能的一部分來實現。

您可以按照增強請求在這裏:在增強請求中提到http://code.google.com/p/selenium/issues/detail?id=2564

其他可能的解決方案是操縱FEATURE_BROWSER_EMULATION註冊表項(見http://msdn.microsoft.com/en-us/library/ee330730(v=vs.85).aspx)或使用鍵盤命令來打開開發人員工具,並從那裏選擇模式(我不確定這個解決方案的效果如何,因爲Python中的解決方法需要將WebDriver對象轉換爲Selenium 1.0對象)。

+9

我應該指出,我**強烈**反對這個增強請求。我認爲它是有缺陷的,而且它的實現在IE驅動程序中沒有地方。指導原則是這樣的:IE驅動程序不應該嘗試更改註冊表,因爲它會影響計算機上所有未來的IE實例。如果IE驅動程序希望驅動多個IE實例,即使緩存現有值並恢復它也充滿危險。這一增強請求看到白天的光線的機會很渺茫。 – JimEvans

相關問題