PhantomJS page.evaluate未执行

时间:2016-03-23 16:08:45

标签: javascript phantomjs

我正在尝试使用PhantomJS打开某个登录页面的URL,填写用户/密码,然后单击登录按钮。 在Facebook上试用时,它运行正常。但是当我在我的网页上尝试时,page.evaluate()根本就没有被执行。

var page = require('webpage').create();
var url = "http://www.facebook.com";

page.onConsoleMessage = function(msg) {
  console.log(msg);
};

page.open(url, function() {
    page.render("phase1.png");
    page.evaluate(function() {
        console.log("test");
        document.getElementById("email").value = "email";
        document.getElementById("pass").value = "password";
    });
    page.render("phase2.png");
    page.evaluate(function() {
        document.getElementById("loginbutton").click();
    });
    setTimeout(function() {
        page.render("phase3.png");
        phantom.exit();
    }, 2000);
});

这是我使用它登录Facebook时的代码。使用渲染的图像,我可以看到它的工作原理。 要在我的网页上使用它,我只需要替换网址和元素ID。页面打开(在渲染图像上可见),但未执行page.evaluate()(字符串“test”未打印到控制台,所有3个图像都相同 - 空登录页面)。可能是什么原因?请注意,没有重定向。

0 个答案:

没有答案
相关问题