Klicken Sie auf einen link mit phantom.js und rufen Sie die html-Dokument
Ich bin neu mit phantom.js und ich bin versucht zu navigieren auf einer Webseite, klicken auf einen link (das ruft eine AJAX-Funktion und ändert das HTML-Dokument) mit phantom.js.
Hier ist mein code:
window.setTimeout(function(){
phantom.exit();
}, 120000);
var page = require('webpage').create();
page.open("http://example.com", function(status) {
if (status !== 'success') {
console.log('{"error":"Unable to load the address for page"}');
phantom.exit();
}
var action = page.evaluate(function() {
document.getElementById("anID").click();
return "clicked";
});
var results = page.evaluate(function() {
return document.documentElement.innerHTML;
});
console.log(action);
window.setInterval(function() {
console.log(results);
phantom.exit();
}, 3000);
});
Bin ich sehr verwirrend, da in meiner "Aktion" - Funktion, mit der click () - Aufruf ist die Erhöhung, die Fehler 3 mal wiederholt:
TypeError: 'undefined' ist keine Funktion
phantomjs://Webseite.evaluate():3 phantomjs://Webseite.evaluate():1
der ph-Wert.js:121 nullTypeError: 'undefined' ist keine Funktion
phantomjs://Webseite.evaluate():3 phantomjs://Webseite.evaluate():1
der ph-Wert.js:121 nullTypeError: 'undefined' ist keine Funktion
phantomjs://Webseite.evaluate():3 phantomjs://Webseite.evaluate():1
der ph-Wert.js:121 null
Auch, wenn ich kommentieren Sie die Zeile, wenn ich senden klicken, wird die action-Funktion löst keine Fehler mehr und gibt auch das "clicked" - Konsole anmelden. Aber 3 mal...
Was mache ich falsch ?
Vielen Dank im Voraus.
- Zur info Sie haben 2 semi-colons nach dieser Zeile:
document.getElementById("anID").click();;
- Ja danke es ist ein Fehler beim posten es hier, problem immer noch da.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich es endlich geschafft, zu erreichen, meine Aufgabe mit diesem code. Ich übersprungen, die auf Aktion und ging direkt auf die AJAX-Aufruf: