Ich habe einen Fehler mit Klicks, die schwer zu reproduzieren sind. 1-2 / 10000 Klicks enden mit OpenQA.Selenium.WebDriverTimeoutException
.
Es sieht so aus, als ob das Element nicht angeklickt wurde und der Treiber auf eine Reaktion wartet.
Manchmal scheint Timeout in der Ausnahmebedrohung echt (300 Sekunden), aber in den meisten Fällen hat es einen negativen Wert wie -0.028.
Ich benutze:
%Vor%Aktualisierung:
Ich bekomme diesen Fehler auch bei RemoteNavigator.GoToUrl
Dies wurde gelöst, indem der Grad der Parallelität meines Testlaufers von 30 auf 10 reduziert wurde. Es sieht so aus, als würde die übermäßige Verwendung von CPU dazu führen, dass Web-Treiber aus irgendeinem Grund nicht erreicht werden.
Ein kleiner Peak in den Selenium-Quellcode zeigt, dass jede Aktion auf der WebElement
oder tatsächlich auf einer Selenium-Interaktion execute(String driverCommand, Map<String, ?> parameters)
von RemoteWebDriver-Klasse
Dies führt den Befehl über %%_de_de% Schnittstelle , die von verschiedenen Treibern implementiert wird
ChromeDriver implementiert dies auch und Sie sehen diesen Fehler aufgrund eines Fehlers, der dem Chrome-Team bekannt ist und an dem er arbeitet. Bitte überprüfen Sie die Fehlerdetails hier.
Die Fehlerrate ist mit Chromedriver v2.23 heruntergekommen, aber sie tritt immer noch auf, aber selten
Ich habe die Ursache des Problems gefunden, zumindest für meinen Fall. Wir führten die Selen-Tests an einer Jenkins-Maschine durch, die einen Proxy-Server verwendete. Dieses Problem trat nur auf, wenn die Protokollierung für Alle aktiviert wurde. Es ist eine bekannte Tatsache, dass websockets nicht mit Proxies arbeiten und chromedriver verwendet websockets, um Browser-Logs abzurufen. Also haben wir den Proxy deaktiviert und das Problem wurde behoben.
Tags und Links .net c# selenium selenium-webdriver