在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运行时,它永远不会返回。
如何加载结果页面?
答案 0 :(得分:0)
page.evaluate()
是sandoxed页面上下文。它无法访问外部定义的变量。因此,在其中使用page
或phantom
或require
是不可能的。
只需将setTimeout
块移到它之外。