2016-11-23 47 views
0

我的測試自動化使用IE瀏覽器時遇到錯誤。Ruby cucumber:如何忽略Selenium WebDriver中的IE保護模式錯誤?

Unexpected error launching Internet Explorer. Protected Mode settings 
    are not the same for all zones. 
    Enable Protected Mode must be set to the same value 
    (enabled or disabled) for all zones. 
    (Selenium::WebDriver::Error::NoSuchDriverError) 

爲了讓測試運行,我必須在IE選項中手動取消選中它們。我做了一些研究,有一種方法可以在java中忽略它,但我還沒有在Ruby中找到它。我發現下面是(我沒有使用遠程服務器):

IE 

    Make sure that Internet Options → Security has the same 
    Protected Mode setting (on or off, it doesn't 
    matter as long as it is the same value) for all zones. 

    From: https://github.com/SeleniumHQ/selenium/wiki/Ruby-Bindings 

我ENV:

Ruby: 1.9.3 
    Selenium WebDriver: 2.53 
    Cucumber: 2.1 

有人已經在Ruby中務實做到了這一點?請分享您的解決方案。

回答

0

所需功能包括禁用此保護模式檢查的標誌。請注意,雖然禁用檢查將允許您打開IE,但您稍後可能會或可能不會收到問題。以下是Selenium Wiki關於該標誌的說明:

是否跳過保護模式檢查。如果設置,測試可能會變成 片狀,無響應或瀏覽器可能掛起。如果未設置,並且保護 模式設置對於所有區域都不相同,驅動程序構造上將拋出異常 。當使用此功能時,僅提供「盡力而爲」支持 。

假設正確設置IE保護模式的設置是不是一種選擇,這裏是你如何禁用硒的webdriver檢查:

caps = Selenium::WebDriver::Remote::Capabilities.internet_explorer(
    'ignoreProtectedModeSettings' => true 
) 
driver = Selenium::WebDriver.for(:internet_explorer, :desired_capabilities => caps) 

如果你是好奇IEDriver的歷史,保護模式,吉姆埃文斯有一個有趣的博客文章,「You're Doing It Wrong: IE Protected Mode and WebDriver」。

+0

謝謝Justin!你有很好的觀點。我將與我們的測試人員討論有關選項。再次感謝! – fongfong