Ich benutze Selen seit einigen Monaten, mit denen wir einige unserer internen Testprozesse automatisieren. Die Skripte wurden gut bestanden. Ich habe kürzlich mit FF 27.01 ein Upgrade auf den Web-Treiber C # 2.40.0 durchgeführt und unsere Skripte schlagen jetzt an zufälligen Stellen mit dem folgenden Fehler fehl.
[Portal.SmokeTest.SmokeRunTest.Booking] TearDown method failed. OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL htt(p)://localhost:7055/hub/session/56e99e88-ba17-4d12-bef1-c6a6367ccc2f/element timed out after 60 seconds.
----> System.Net.WebException : The operation has timed out
TearDown : OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL htt(p)://localhost:7055/hub/session/56e99e88-ba17-4d12-bef1-c6a6367ccc2f/window timed out after 60 seconds.
----> System.Net.WebException : The operation has timed out
[09:01:20]
[Portal.SmokeTest.SmokeRunTest.Booking] TearDown method failed. OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL htt(p)://localhost:7055/hub/session/56e99e88-ba17-4d12-bef1-c6a6367ccc2f/element timed out after 60 seconds.
----> System.Net.WebException : The operation has timed out
TearDown : OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL htt(p)://localhost:7055/hub/session/56e99e88-ba17-4d12-bef1-c6a6367ccc2f/window timed out after 60 seconds.
----> System.Net.WebException : The operation has timed out
at OpenQA.Selenium.Support.UI.DefaultWait`1.PropagateExceptionIfNotIgnored(Exception e)
at OpenQA.Selenium.Support.UI.DefaultWait`1.Until[TResult](Func`2 condition)
at Portal.Test.Helpers.Process_Bookings.OpenBookings.SelectBooking(String bookingnumber)
at Portal.SmokeTest.SmokeRunTest.Booking() in d:\TeamCityAgent\work\dac1dcea7f2e80df\SmokeTests\SmokeRunTest.cs:line 68
--WebException
at System.Net.HttpWebRequest.GetResponse()
at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request)
--TearDown
at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request)
at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
at OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Execute(Command commandToExecute)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.Close()
at Portal.Test.Helpers.Setup.CloseWebdriver()
at Portal.SmokeTest.SmokeRunTest.TearDown() in d:\TeamCityAgent\work\dac1dcea7f2e80df\SmokeTests\SmokeRunTest.cs:line 162
--WebException
at System.Net.HttpWebRequest.GetResponse()
at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request)
Der letzte Fehler, den ich in einer einzigen Codezeile gefunden habe:
_setup.driver.FindElement(By.XPath("//button[@class='buttonSmall lockBookingButton']")).Click();
Das Ärgerliche ist, dass sich der Versuch, das Problem zu beheben, als schwierig erweist, als ob ich den Test auf meinem lokalen Computer ausführen würde. Wenn ich es über den NUNIT-Runner auf der Build-Maschine ausführe, auf der ich den Test ausführe, besteht es ebenfalls. Es scheint nur im Rahmen unseres automatisierten Build-Ausführungsprozesses bei Verwendung von Teamcity zu scheitern. Wie ich bereits sagte, läuft dies seit Monaten einwandfrei, und das einzige, was sich geändert hat, ist das Selen-Webdriver-Kit.
Ich habe dieses Problem bereits beim Debuggen festgestellt, und als eine Click()
Codezeile aufgerufen wurde, schien Firefox zu blockieren, und nur das Stoppen des Tests würde es Firefox ermöglichen, fortzufahren. Hier gibt es eine Reihe von Vorschlägen, einschließlich der Änderung der Webdriver-Quelle? Ich möchte diesen Weg möglichst nicht gehen, wenn jemand anderes Vorschläge machen kann.