gesteuerter asynchroner Ausgang von phantomjs

8

Ich versuche, ein paar Tests mit phantomjs zu machen ... im Grunde möchte ich:

  • öffne eine Seite auf meinem Webserver
  • sobald die Seite initialisiert wurde (die gesamte Seite wurde geladen)
  • rufen Sie die Seite js von phantomjs auf und testen Sie die Ergebnisse
  • exit phantomjs

Phantomjs scheint es schwer zu bemerken, wenn die Seite geladen ist.

Ich könnte Phantomjs verwenden, um eine "Test" -Variable auf dem Fenster oder etwas zu setzen, so dass die Seite js das überprüfen könnte und dann einen Rückruf aufrufen würde, sobald es fertig ist. Das Problem ist, dass der Rückruf nur ein Seitenrückruf sein kann, also kann er nichts tun, was eine Seite nicht tun könnte.

Das ist vielleicht in Ordnung, aber der letzte Schritt ist nicht möglich.

Ich kam auf folgendes:

%Vor%

So kann der Seitencode window.quit () aufrufen und der Konsolenmonitor kann Phantom dann töten. Dies scheint ein bisschen hacky obwohl. Hat jemand einen besseren Weg, es zu tun?

    
nic ferrier 12.04.2012, 14:57
quelle

1 Antwort

1

Haftungsausschluss: Dies ist ungeprüfter Code

Sie können möglicherweise an die onLoadFinished-Rückruffunktion des Webseitenobjekts anhängen. Dies wird im Rahmen von PhantomJS ausgeführt, sodass Sie alle Ihre Variablen zur Verfügung haben.

So etwas sollte genügen:

%Vor%     
Thomas Jones 07.05.2012 16:53
quelle