2016-03-30 19 views
1

ich den folgenden Code bin mit JavaScript-Fehler zu erfassen, wenn Selenium-Tests ausgeführt werden:FireFoxDriver JavaScript-Fehler zeigt nicht in FireFox-Browser

public static void AssertNoJavaScriptErrorsInLog(this RemoteWebDriver driver) 
{ 
    var errorStrings = new List<string> { "SyntaxError", "EvalError", "ReferenceError", "RangeError", "TypeError", "URIError" }; 

    var jsErrors = driver.Manage().Logs.GetLog(LogType.Browser).Where(x => errorStrings.Any(e => x.Message.Contains(e))).ToList(); 

    if (jsErrors.Any()) 
    { 
     Assert.Fail("JavaScript error(s):" + Environment.NewLine + jsErrors.Aggregate("", (s, entry) => s + entry.Message + Environment.NewLine)); 
    } 
} 

Einer meiner Tests berichtet weise einen Fehler:

Assert.Fail failed. JavaScript error(s): 
TypeError: doc.documentElement is null 
TypeError: doc.documentElement is null 

Versuchen, den Fehler zu finden, ich schaue in der Konsole des FireFox-Browsers, der gerade die fehlgeschlagenen Tests ausgeführt hat, aber es ist leer!

Warum kann ich den JavaScript-Fehler in der Browserkonsole nicht sehen?

+0

Können Sie überprüfen, ob Chrome sich genauso verhält? Vielen Dank. – alecxe

+0

@alecxe Ich konnte den Fehler nicht mit ChromeDriver reproduzieren. – Drutten

+0

Okay, was Selen und Firefox-Versionen verwenden Sie? Vielen Dank. – alecxe

Antwort

3

Sie könnten die folgende frisch Selen Problem auftreten:

Als Abhilfe können betrachten Selen auf 2,52 Herabstufung.


Auch von Zeit zu Zeit gibt es Kompatibilitätsprobleme zwischen Selen und firefox mit einem breiten Spektrum von Symptomen - spielen, um mit Firefox-Versionen (Sie ältere Versionen herunterladen here) und sehen, ob Sie immer noch nicht fangen Der js-Fehler auf der Konsole.

+0

Interessant! Könnte vielleicht auch mit dem Problem zusammenhängen [Nachfolgende Aufrufe von browser.manage(). Logs(). Get ('browser') liefert immer leere Array-Antworten] (https://github.com/angular/protractor/issues/3087) – Drutten

+0

@Drutten ja, dies würde zu dem externen Selenproblem führen. Haben Sie mit Selen 2.52, 2.51 und älter versucht - immer noch reproduzierbar? Vielen Dank. – alecxe