2010-02-16 6 views
8

Wir verwenden WatiN unsere Web-Portale zu testen. Im Verlauf eines E2E-Tests, werden wir gelegentlich clientseitige Skriptfehler auf der IE Statusleiste angezeigt. Ich möchte Kette einen Handler auf das Ereignis Skriptfehler und notieren Sie die Fehler für eine spätere Analyse und Fehler Anmeldung.Gibt es eine Browser-unabhängige Art und Weise clientseitige Skriptfehler mit Watin zu erkennen?

Problem ist, weiß ich nicht, dass ein globales Skript Fehlerereignis gibt es und wie es zu Kette in. Und wenn es nicht ein Browser-unabhängige Art und Weise, dies zu erreichen, kann ich MyIE und MyFF Subklassen erstellen, aber dann wird dies zwei browserspezifischen Fragen.

Im Wesentlichen Ich denke an so etwas wie dieses völlig erfundenen Anruf:

browser.ScriptEngine.SetCustomErrorHandler(LogScriptingError); 

... wo LogScriptErrors mein Code, der das offensichtlich der Fall ist.

Viele unserer clientseitigen Skriptfehler verhindern nicht unbedingt, dass der Test fortgesetzt wird (ein hübsches UI-Element wurde beispielsweise nicht animiert, aber das zugrunde liegende Formular ist noch übergabefähig), daher möchte ich mich anmelden der Fehler und in den meisten Fällen vorantreiben.

Antwort

0

Sie könnten vielleicht die Fähigkeit inject eval code (beschrieben unter "Zusätzliche Eval-Funktionalität") kooptieren, um ein Skript hinzuzufügen, das alle Fehler erfasst hat, nicht nur Fehler aus dem ausgewerteten Skript. Ich bin mir nicht sicher, ob das funktionieren würde, aber es ist ein Bereich, den es zu erkunden gilt. Eine andere Ressource könnte diese blog post sein, die erläutert, wie Javascript in WatiN ausgewertet wird.

1

Sie wahrscheinlich für diese Suche:

window.onerror=function(message, url, line){logError();}; 

Sie diesen Code zu Ihren Seiten hinzufügen, können Fehler in logError() zu behandeln. dies kann aber nicht in jedem Browser funktionieren (funktioniert in IE), überprüfen Sie dies für Browser-Kompatibilität:

http://www.quirksmode.org/dom/events/error.html

Oder Sie können dieses Handelsprodukt versuchen:

exceptionhub.com/

+0

Ich benutze Diese Funktion in einem Produktionsdienst scheint auf allen Browsern (die relevant sind - die 3 wichtigsten Engines) gut zu funktionieren. – Guss