Ein großes Manko curl
besteht darin, dass immer mehr Webseiten ihren Hauptinhalt von einer JavaScript-AJAX-Antwort malen lassen, die nach der ersten HTTP-Antwort auftritt. curl
greift diesen nachgemalten Inhalt nie auf.
Um diese Arten von Webseiten von der Befehlszeile abzurufen, habe ich mich darauf beschränkt, Skripte in Ruby zu schreiben, die den SeleniumRC dazu bringen, eine Firefox-Instanz zu starten und nach Abschluss dieser AJAX-Aufrufe den Quell-HTML-Code zurückzugeben.
Es wäre viel besser, eine schlankere Befehlszeilenlösung für diese Art von Problem zu haben. Kennt jemand welche?
Antworten:
Ich habe erst kürzlich angefangen, den WebDriver von Selenium 2 in Java zu verwenden. Es gibt einen Treiber namens HtmlUnitDriver, der JavaScript vollständig unterstützt, aber keinen tatsächlichen Browser startet.
Es ist keine leichte Lösung, aber es erledigt die Arbeit.
Ich habe den Code so konzipiert, dass er über die Befehlszeile ausgeführt und die Webdaten in Dateien gespeichert werden.
quelle
Hast du an Watir gedacht?
http://watir.com/
Wenn Sie das Paket hinzugefügt haben, können Sie es als eigenständige Datei oder
irb
zeilenweise nachher ausführeninclude 'watir-webdriver'
. Ich habe festgestellt, dass es reaktionsschneller ist alsselenium-webdriver
, aber ohne die Testaufzeichnungs-GUI, um komplexe Testbedingungen zu ermitteln.quelle