PhantomJS, aber nicht kopflos?

8

Gibt es eine Möglichkeit, eine Echtzeitansicht von PhantomJS (oder ähnlichem) zu erhalten?

Ich möchte mein Automatisierungsskript entwickeln, während ich mit der Seite, auf die es ausgerichtet ist, interagiere (oder zumindest einen Screenshot davon sehe).

    
themirror 15.07.2014, 22:51
quelle

4 Antworten

3

Nein, so etwas gibt es nicht. SlimerJS hat die gleiche API wie PhantomJS, führt aber die Gecko-Engine aus. Sie können direkt sehen, was vor sich geht und es kopflos mit xvfb-run ausführen .

Sie werden nicht in der Lage sein, damit zu interagieren. Sie können einen Bildschirmgrabber verwenden, um ein Video der Interaktion aufzuzeichnen, wenn die Tests lang sind, und Sie möchten die Testsuite nicht erneut ausführen, wenn Sie das Problem im Testfall nicht bemerkt haben.

Der offensichtliche Weg zum Debuggen von PhantomJS-Skripten besteht darin, viele Screenshots mit page.render() zu rendern und einige Objekte mit

auf der Konsole zu protokollieren %Vor%

mit schöner Formatierung.

    
Artjom B. 16.07.2014 07:01
quelle
1

Lösung, die wir verwenden, ist ein automatisches Screenshot im Falle von Ausnahmen, phantomJs wird die aktuelle Seite in eine Datei rendern, die Sie später untersuchen können.

Das ist für die Testausführungsphase.

Wenn Sie die Tests schreiben, halten Sie einfach ein zusätzliches Fenster geöffnet ("normaler Browser") mit der Anwendung, die Sie testen möchten, und entwerfen Sie den Test entsprechend.

Wenn der Entwurf abgeschlossen ist, führen Sie den Test mit phantomJS durch.

    
Stas 05.08.2014 08:29
quelle
0

Mein Vorschlag besteht darin, die Protokollierung zu verwenden. Ссылка

CasperJS ist ein Open-Source-Navigations-Scripting & amp; Test-Dienstprogramm in Javascript für den PhantomJS WebKit Headless-Browser und SlimerJS (Gecko) geschrieben. Es vereinfacht den Prozess der Definition eines vollständigen Navigationsszenarios und bietet nützliche Funktionen auf hohem Niveau, Methoden & amp; syntaktischer Zucker für allgemeine Aufgaben wie:

  • definieren & amp; Browsen Navigationsschritte bestellen
  • Füllung & amp; Formulare einreichen
  • Klicken & amp; folgende Links
  • Erfassen von Screenshots einer Seite (oder eines Teils davon)
  • testing remote DOM
  • Protokollierungsereignisse
  • Herunterladen von Ressourcen, einschließlich Binärdateien
  • Schreiben von funktionalen Testsuiten, Speichern von Ergebnissen als JUnit XML
  • scraping Web contents
Abs 17.09.2014 01:37
quelle
0

Die Lösung für dieses Problem ist die Verwendung des Remote-Debuggers:

--remote-debugger-port=9000

Die Verwendung von slimerjs zum Testen von Skripten mit einem Browser ist nicht ratsam, da es auf Gecko basiert, was bedeutet, dass das Skript auf slimerjs und nicht auf phantomjs oder umgekehrt funktioniert.

werfen Sie einen Blick auf diese Anleitung für weitere Informationen ... Ссылка

    
untore 16.08.2016 11:15
quelle

Tags und Links