打开页面并单击结果 - Phantomjs

Opening a page and clicking results - Phantomjs

下面的 phantomjs 代码尝试打开一个站点并单击一个按钮:

var page = require('webpage').create();
page.open('http://mysite/mypage.html', function() {
  page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
    page.evaluate(function() {
        $("[name='SubmitForm']").click();

        window.setTimeout(function () {
            page.render('snap.png');
            phantom.exit();
        }, 6000); // Change timeout as required to allow sufficient time 

    });

  });
});

但是当我 运行 使用 phantomjs test.js 它从来没有 returns.

如何加载结果页面?

page.evaluate() 是经过沙盒处理的页面上下文。它无权访问外部定义的变量。所以在里面使用pagephantomrequire是不可能的。

只需将 setTimeout 方块移出它即可。