2016-04-25 10 views
1

Ich habe keine impliziten Wartezeiten eingerichtet. Ich lasse den folgenden Code laufen:C# Selenium ChromeDriver wartet nicht explizit auf die eingestellte Zeitspanne

try 
{ 
    var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5)); 
    var something = wait.Until(ExpectedConditions.ElementIsVisible(By.Name("__CONFIRM__"))); 
} 
catch (Exception ex) 
{ 
    var something = ex.Message; 
} 

Die Ausnahme wird nach 60 Sekunden, nicht 5 Sekunden geworfen. Gibt es einige implizite Wartezeiten, die ich zuerst löschen muss?

Nachdem ich die Dokumentation für Selenium durchgelaufen bin, weiß ich, dass man nicht implizite und explizite Wartezeiten mischen sollte, aber ich bin mir sicher, dass ich das hier nicht mache?

+0

versuchen, diese anderen Art und Weise zu verwenden, um die Wartezeit zu berufen, nur um zu testen, ob Es wird eine Ausnahme nach 60 Sekunden oder nicht ausgelöst: 'var etwas = wait.Until (x => x.FindElement (By.Name (" __ CONFIRM __ ")). IsVisible);' –

+0

IWebElement enthält keine Definition für IsVi sible –

+0

Mein schlechter, der richtige Name ist "Angezeigt". –

Antwort

0

dreht sich also heraus, dass da in einigen Fällen das Fenster der Fahrer in geschlossenen laufen, wurde der Fahrer nicht, was zu finden, es sollte, und wurde nach den impliziten 60 Sekunden in

Pro Tip eingebauten Zeitüberschreitung.: wenn das Fenster schließen kann, sicher sein, dies zu erkennen und verwenden, um die Driver.SwitchTo() ... Funktion zu Ihnen aus der Patsche zu bekommen

Verwandte Themen