J'essaie d'utiliser phantomJS (quel outil génial btw!) Pour soumettre un formulaire pour une page pour laquelle j'ai des informations de connexion, puis afficher le contenu de la page de destination vers stdout. Je suis capable d'accéder au formulaire et de définir ses valeurs avec succès en utilisant fantôme, mais je ne suis pas tout à fait sûr de la bonne syntaxe pour soumettre le formulaire et afficher le contenu de la page suivante. Ce que j'ai jusqu'à présent, c'est:
var page = new WebPage();
var url = phantom.args[0];
page.open(url, function (status) {
if (status !== 'success') {
console.log('Unable to access network');
} else {
console.log(page.evaluate(function () {
var arr = document.getElementsByClassName("login-form");
var i;
for (i=0; i < arr.length; i++) {
if (arr[i].getAttribute('method') == "POST") {
arr[i].elements["email"].value="mylogin@somedomain.com";
arr[i].elements["password"].value="mypassword";
// This part doesn't seem to work. It returns the content
// of the current page, not the content of the page after
// the submit has been executed. Am I correctly instrumenting
// the submit in Phantom?
arr[i].submit();
return document.querySelectorAll('html')[0].outerHTML;
}
}
return "failed :-(";
}));
}
phantom.exit();
}
setInterval
utilisation internevar func = steps[testindex]
, alorsconsole.log("step " + (testindex + 1) + ": " + funcName(func))
. Cela vous permet d'ajouter une description aux étapes en cours d'exécution.