2014-07-15 25 views
8

Czy istnieje sposób, aby uzyskać w czasie rzeczywistym widok tego, co renderuje PhantomJS (lub podobny)?PhantomJS, ale nie bezgłowy?

Chciałbym rozwijać mój skrypt automatyzacji podczas interakcji z (lub przynajmniej widząc screencap) strony, na którą jest kierowany.

+2

Można użyć Selen/webdriver zamiast? Możesz uruchamiać testy w podobny sposób jak phantomjs, ale w prawdziwych przeglądarkach. Obsługuje phantom jako przeglądarkę, dzięki czemu możesz nadal używać go wraz z (znacznie wolniejszymi) przeglądarkami. – joews

Odpowiedz

3

Nie, nie ma czegoś takiego. SlimerJS ma takie samo API jak PhantomJS, ale uruchamia silnik Gecko. Możesz bezpośrednio zobaczyć, co się dzieje i uruchamiać bezmyślnie z xvfb-run.

Nie będziesz w stanie wchodzić z nim w interakcję. Możesz użyć rejestratora, aby nagrać wideo interakcji, gdy testy są długie i nie chcesz ponownie uruchamiać zestawu testów, jeśli nie zauważyłeś problemu w teście.


Oczywistym sposobem debugować skrypty PhantomJS jest świadczenie wiele zrzutów ekranu za pomocą page.render() i logowaniem kilka obiektów do konsoli z

console.log(JSON.stringify(yourObj, undefined, 4)); 

z miłą formatowania.

1

Rozwiązanie, którego używamy, to automatyczne zrzuty ekranu w przypadku wyjątków, phantomJs przekształci bieżącą stronę w plik, który można później zbadać.

To w fazie wykonywania testów.

Podczas pisania testów, po prostu pozostaw dodatkowe okno otwarte ("normalna przeglądarka") z aplikacją, którą próbujesz przetestować i zaprojektuj test zgodnie z nią.

Po zakończeniu projektu należy wykonać test za pomocą phantomJS.

+0

Złe jest to, że masz * wiele * zrzutów ekranowych, które można złożyć i złożyć, aby zrozumieć, co się dzieje. Dobrą rzeczą jest to, że masz cały czas na świecie, aby szukać problemów na tych zrzutach ekranu, gdy coś nie będzie planować. Trudno to zrobić za pomocą automatycznego okna przeglądarki, tak jak w mojej odpowiedzi. –

0

Moja sugestia to używanie rejestrowania razem z usługą. http://casperjs.org/

CasperJS jest skryptowym nawigacja narzędzie & testowanie open source napisany w JavaScript w przeglądarce bezgłowe PhantomJS WebKit i SlimerJS (Gecko).To ułatwia proces definiowania pełny scenariusz nawigację i dostarcza użytecznych funkcji wysokiego poziomu, metody & cukier syntaktyczny dla prowadzenia wspólnych zadań, takich jak:

  • definiowania & zamawiania przeglądania nawigacji kroki
  • napełniania & przesyłania formularzy
  • klikając & Poniższe linki
  • przechwytywania zrzutów ekranu strony (lub jej części)
  • testowania zdalnego DOM
  • rejestrowanie zdarzeń
  • pobierania zasobów, w tym binarnych
  • pisanie funkcjonalne zestawy testów, zapisywania wyników jak JUnit XML
  • skrobanie zawartość sieci
0

Rozwiązaniem tego problemu jest użycie zdalnego debugera:

--remote-debugger-port=9000

Używanie slimerjs do testowania skryptów z brwiami ser nie jest wskazany, ponieważ jest oparty na gecko, co oznacza, że ​​skrypt może działać na slimerjs, a nie na phantomjs lub viceversa.

przyjrzeć się tej instrukcji, aby uzyskać więcej informacji ... https://drupalize.me/blog/201410/using-remote-debugger-casperjs-and-phantomjs