2017-07-24 2 views
1

Ich habe den folgenden Code, das ist genau das tut, was ich will:Wie verwende ich IE-Optionen mit IWebDriver?

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

jedoch mit dem Fahrer variabel brauchen Leute, die ich arbeiten ein IWebDriver stattdessen zu sein:

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

Also, wenn ich frage mich da ist eine Möglichkeit, die folgende Eigenschaft zu setzen:

options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 

mit einem RemoveWebDriver? Kann ich es in DesiredCapabilities Objekt einstellen?

So etwas wie dies vielleicht (kann nicht so etwas wie dieses finden):

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

Oder das options Objekt in RemoveWebDriver aufzunehmen?

+0

Die Vererbungshierarchie lautet: IWebDriver> RemoteWebDriver> InternetExplorerDriver. Wenn Sie also ein InternetExplorerDriver-Objekt erstellen, erstellen Sie auch ein RemoteWebDriver-Objekt, das die Schnittstelle IWebDriver verwendet. Wenn Sie wirklich eine Instanz von RemoteWebDriver erstellen möchten, können Sie die von Ihnen erstellte Objektvariable übergeben und den Pfad zur EXE festlegen und den InternetExplorerDriver verwenden. – stewartm

+0

@stewartm Vielen Dank für Ihre Antwort !! Ich hatte jedoch davon, und ich tat dies als Versuch: options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; IWebDriver _driver = neuer InternetExplorerDriver (Optionen); – Cher

+0

aber dann kann ich keine Fähigkeiten und so einstellen? – Cher

Antwort

3

Wenn Sie sowohl Optionen als auch Funktionen verwenden müssen, können Sie Optionen zu Ihren Funktionen hinzufügen und diese Funktionen dann als Parameter an den Remote-Webtreiber übergeben.

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

capabilities.SetCapability (InternetExplorerOptions.Capability, options); ist nicht die Art, es zu schreiben Ich habe es gerade bemerkt, habe ich etwas verpasst? – Cher

+0

sollte es Fähigkeiten sein. SetCapability ("ignoreProtectedModeSettings", true); Ich denke? – Cher

+1

Ich denke, dass zum größten Teil alle Einstellungen in InternetExplorerOptions als Fähigkeiten festgelegt werden können. Es ist nur die Aufgabe zu finden, welche Zeichenfolge in die Fähigkeit zu setzen, die schwer zu finden sein kann :(. Überprüfen Sie diese Seite: https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities. Es hat eine Menge Fähigkeiten Zeichenfolgen für alle Browser – stewartm