Ich benutze Selenium 2.20 WebDriver, um einen Firefox-Browser mit C# zu erstellen und zu verwalten. Um eine Seite zu besuchen, ich benutze den folgenden Code, um den Treiber-Timeouts einstellen, bevor Sie die URL besuchen:Selenium WebDriver - So legen Sie Zeitlimit für das Laden der Seite mit C#
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5)); // Set implicit wait timeouts to 5 secs
driver.Manage().Timeouts().SetScriptTimeout(new TimeSpan(0, 0, 0, 5)); // Set script timeouts to 5 secs
driver.Navigate().GoToUrl(myUrl); // Goto page url
Das Problem ist, dass manchmal Seiten ewig dauern zu laden, und es scheint, dass das Standard-Timeout für eine Seite zu laden Verwenden des Selen WebDriver ist 30 Sekunden, was zu lang ist. Und ich glaube nicht, dass die Timeouts, die ich setze, für das Laden einer Seite mit der GoToUrl() Methode gelten.
So versuche ich herauszufinden, wie eine Zeitüberschreitung für eine Seite zu laden, aber ich kann keine Eigenschaft oder Methode, die tatsächlich funktioniert finden. Das standardmäßige Zeitlimit von 30 Sekunden scheint auch zu gelten, wenn ich auf ein Element klicke.
Gibt es eine Möglichkeit, das Seitenladezeitlimit auf einen bestimmten Wert zu setzen, so dass beim Aufruf der GoToUrl() -Methode nur die angegebene Zeit gewartet wird, bevor ich fortfahre?
Sind Sie sicher, dass 'GoToUrl()' auf das Laden der Seite wartet? Meine Erfahrung ist, dass es nicht so ist. Aber das ist nur ein Gefühl, keine Tatsache. –
Ja, ich bin 100% sicher, dass der Aufruf von GoToUrl() die Ausführung blockiert, bis die Seite vollständig geladen ist, und ich habe ein Standard-Timeout von 30 Sekunden für den Aufruf dieser Methode gemessen, nach 30 Sekunden wird die Ausführung fortgesetzt, und ich versuche es um dieses Standard-Timeout von 30 Sekunden irgendwie zu reduzieren. – KabanaSoft
Ich habe ähnliche Frage gepostet: http://StackOverflow.com/Questions/11958701/what-is-the-best-Approach-for-timeout-using-selenium-using-Webdriver –