2017-08-01 2 views
0

Sample codeUnable Element mit Selen C#

Ich bin nicht in der Lage zu wählen, das Element zu finden entweder durch XPath, CSSSelector, Klassennamen, etc ... für den markierten Text (die eine Schaltfläche). Haben Sie folgenden Code:

driverChrome.SwitchTo().DefaultContent(); 
driverChrome.SwitchTo().Frame(0); 
IWebElement optionsGear = driverChrome.FindElement(By.CssSelector("html body div#app.d2l-typography div#root-wrapper div.main-wrapper div.root div.main div.navigation-container div.nav-header div.options-header div.overall-options-container div.options-dropdown button.button.overall-options")); 
optionsGear.Click(); 

Irgendwelche Vorschläge oder Ideen?

+0

Könnte es sein, dass dies nicht der einzige iframe in der Seite ist? Versuchen Sie, es durch ID anstelle von Index zu wechseln. – user1242967

+0

Ich habe versucht IWebElement leftPane = driverChrome.FindElement (By.XPath ("// html // body // iframe")); driverChrome.SwitchTo(). Frame (leftPane); aber bekomme das gleiche Ergebnis. Ich kann jedoch den Code in der Browserkonsole korrekt ausführen: document.getElementsByClassName ("overall-options") [0] .click() –

+0

Also ... Funktioniert es, wenn Sie 'driverChrome.SwitchTo() versuchen. Frame ("iFrameResizer0"); '? – user1242967

Antwort

1

Es wurde festgestellt, dass das Problem durch eine implizite Wartezeit behoben wurde: driverChrome.Manage(). Timeouts(). ImplicitWait = TimeSpan.FromSeconds (10);