Tôi đang cố gắng sử dụng ph PhantomJS (thật là một công cụ tuyệt vời btw!) Để gửi biểu mẫu cho một trang mà tôi có thông tin đăng nhập, sau đó xuất nội dung của trang đích ra thiết bị xuất chuẩn. Tôi có thể truy cập biểu mẫu và đặt thành công các giá trị của nó bằng cách sử dụng ảo, nhưng tôi không chắc chắn cú pháp đúng là gì để gửi biểu mẫu và xuất nội dung của trang tiếp theo. Những gì tôi có cho đến nay là:
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
sử dụng bên trongvar func = steps[testindex]
, sau đóconsole.log("step " + (testindex + 1) + ": " + funcName(func))
. Điều này cho phép bạn thêm mô tả cho các bước đang được thực hiện.