2017-07-24 39 views
1

我有以下的代碼,不正是我想要的:如何使用IE選項和IWebDriver?

private IWebDriver driver; 
var options = new InternetExplorerOptions(); 
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 
driver = new InternetExplorerDriver(options); 

然而,人無我有工作需要的驅動變量是IWebDriver代替:

DesiredCapabilities capabilities = DesiredCapabilities.InternetExplorer(); 
capabilities.SetCapability("ie.ensureCleanSession", true); 
driver = new RemoteWebDriver(new Uri(remoteAddress), capabilities, TimeSpan.FromSeconds(10)); 

所以我想知道如果有是一種將設置以下屬性:使用RemoveWebDriver

options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 

?我可以在DesiredCapabilities對象中設置它嗎?

這樣的事情,也許(找不到這樣的事情):

capabilities.SetCapability("ie.IntroduceInstabilityByIgnoringProtectedModeSettings ", true); 

或者包括在RemoveWebDriveroptions對象?

+0

繼承層次結構如下:IWebDriver> RemoteWebDriver> InternetExplorerDriver。因此,通過創建InternetExplorerDriver對象,您還可以創建一個使用接口IWebDriver的RemoteWebDriver對象。 如果你真的想創建一個RemoteWebDriver的實例,你可以傳入你創建的對象變量並設置exe的路徑,它將使用InternetExplorerDriver。 – stewartm

+0

@stewartm非常感謝您的回答!我雖然這樣做,我做到了這一點:options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; IWebDriver _driver = new InternetExplorerDriver(options); – Cher

+0

但我不能設置功能等? – Cher

回答

3

如果您需要同時使用選項和功能,則可以將選項添加到您的功能中,然後將這些功能作爲參數傳遞給遠程webdriver。

capabilities.SetCapability(InternetExplorerOptions.Capability, options); 
+0

capabilities.SetCapability(InternetExplorerOptions.Capability,options);是不是寫我的方式我只是注意到了,我錯過了什麼? – Cher

+0

它應該是capabilities.SetCapability(「ignoreProtectedModeSettings」,true);我認爲? – Cher

+1

我認爲大部分情況下,InternetExplorerOptions中的所有設置都可以設置爲功能。這只是找到要放入該功能的字符串的任務,可能很難找到:(。看看這個頁面:https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities。它有很多功能所有瀏覽器的字符串 – stewartm