Selen Fehler: Keine Antwort vom server für die url http://localhost:7055
Ich bin mit Selen, C#, NUnit, Test schreiben, manchmal bekomme ich folgende Fehlermeldung:-
OpenQA.Selen.WebDriverException : Keine Antwort vom server für die url
http://localhost:7055/hub/session/8dd13f5c-7ca6-4aa6-babc-f0ff6d940f0a/element
Hier ist stack trace:
OpenQA.Selen.WebDriverException : Keine Antwort vom server für die url
http://localhost:7055/hub/session/8dd13f5c-7ca6-4aa6-babc-f0ff6d940f0a/element
bei
OpenQA.Selen.Remote.HttpCommandExecutor.CreateResponse(WebRequest
Anfrage)
c:\Projekte\WebDriver\trunk\dotnet\src\WebDriver\Remote\HttpCommandExecutor.cs:Zeile
115 auf OpenQA.Selen.Remote.HttpCommandExecutor.Execute(Befehl
commandToExecute)
c:\Projekte\WebDriver\trunk\dotnet\src\WebDriver\Remote\HttpCommandExecutor.cs:Zeile
96
OpenQA.Selen.Firefox.Intern.ExtensionConnection.Execute(Befehl
commandToExecute)
c:\Projekte\WebDriver\trunk\dotnet\src\WebDriver\Firefox\Internal\ExtensionConnection.cs:Zeile
128 bei OpenQA.Selen.Remote.RemoteWebDriver.Execute(String
driverCommandToExecute, Dictionary`2 parameters) bei
c:\Projekte\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:Zeile
795 bei OpenQA.Selen.Remote.RemoteWebDriver.FindElement(String
Mechanismus, String-Wert) in
c:\Projekte\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:Zeile
836 bei OpenQA.Selen.Remote.RemoteWebDriver.FindElementById(String
id) in
c:\Projekte\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:Zeile
431 bei OpenQA.Selen.Durch.<>c__DisplayClass2.b__0(ISearchContext
Kontext) in
c:\Projekte\WebDriver\trunk\dotnet\src\WebDriver\.cs:Zeile 102 auf
OpenQA.Selen.Durch.FindElement(ISearchContext Kontext) in
c:\Projekte\WebDriver\trunk\dotnet\src\WebDriver\.cs:Zeile 272 an
OpenQA.Selen.Remote.RemoteWebDriver.FindElement(By durch)
c:\Projekte\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:Zeile
289 bei.####.##.#####.#########.#####.ShareServicesTest.CreateShareWidget()
Code, wo dieser Fehler angezeigt wird:
Driver.SwitchTo().Frame(frameElement);
var wait = new WebDriverWait(parentContextable.Context.Driver, Timeout);
IWebElement element = wait.Until(d => Driver.FindElement(By.TagName(Tags.Body))); //error in this line
Ich herausgefunden, dass dieser Fehler ausgelöst werden kann nur auf diese Zeilen von Selen Umsetzung-code:
private static Response CreateResponse(WebRequest request)
{
Response commandResponse = new Response();
HttpWebResponse webResponse = null;
try
{
webResponse = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
webResponse = (HttpWebResponse)ex.Response;
}
if (webResponse == null)
{
throw new WebDriverException("No response from server for url " + request.RequestUri.AbsoluteUri);
}
else
{ ...
Weiss vielleicht jemand, warum die Anfrage.GetResponse() gibt null zurück, oder wenn es scheitert, warum ex.Antwort auch null?
(09.09.2012) Sorry, aber ich vielleicht nicht alle Informationen. Ich bin mit FireFox-Treiber, Win7, Selen 2.25.1. Mein test schlägt fehl, nur manchmal. Test im debug-Modus fehlschlägt, weniger oft, dann Release.
Hier Fand ich mögliche Gründe, warum dies geschehen ist. Und wenn ich Schreibe code:
Driver.SwitchTo().Frame(frameElement);
var wait = new WebDriverWait(parentContextable.Context.Driver, Timeout);
Tread.Sleep(250);
IWebElement element = wait.Until(d => Driver.FindElement(By.TagName(Tags.Body)));
Test läuft OK. Aber Thread.Schlaf ist schlechte Lösung. Vielleicht jemanden finden könnte, eine andere, wenig bessere Lösung.
InformationsquelleAutor der Frage Frigik | 2012-09-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden Folgende workarounds hier:
https://groups.google.com/forum/?fromgroups=#!Thema/Selen-Benutzer/1im-LurjK5s
http://watirmelon.com/2011/10/04/c-avoiding-the-webdriverexception-no-response-from-server-for-url/
InformationsquelleAutor der Antwort Pani Kumar
Sind Sie mit IE? Ich war immer, bis ich entdeckte, dass ich könnte setzen der Basis-URL config auf das Objekt. Ansonsten, die erste Seite dauert es Sie zu etwas erzeugt, durch Selen, und es scheint zu übersehen, die Hinweise für die "echten" request.
Ich, dass in einem
TextFixtureSetup
Methode in meinen tests.InformationsquelleAutor der Antwort MisterJames
Ich hatte das gleiche problem und lösen auf diese Weise:
a) vermeiden Sie Methoden, wie Sie 'tun wity wiederholen' zu manipulieren IWebElements, da auf diese Weise die tests zu viele Zeit zu führen, ist unnötig und tests fehlschlägt zeitweise.
b) downgrade des Firefox-version 5 (vielleicht aus FF 3.6 bis 6 funktioniert gut, aber die neuen Versionen von FF löst eine intermittierende Ausnahme wie " Keine Antwort von hub/session...'
c) wenn Sie behandeln müssen, dass die Elemente in Ihrem test, dass geladen wird per Ajax auf der Seite, stellen Sie sicher, dass eine js-Funktion, Stopp-element geladen, so sollten Sie diese Funktion aufrufen, von WebDdriver vor FindElement und
do what you want
.InformationsquelleAutor der Antwort Lucas Oliveira