我似乎无法做一个简单的表单提交.
以下是我向Google搜索表单提交"测试"并打印结果的代码.
var url = 'http://www.google.com/',
page = new WebPage();
page.open(url, function(status) {
if (status !== 'success')
{
console.log('Unable to access network');
phantom.exit();
return;
}
else
{
page.includeJs("//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js", function() {
page.evaluate(function() {
$('#gbqfq').val("Test");
$("#gbqfba").click();
});
page.render('google.png');
phantom.exit();
});
}
});
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我如何做到这一点?我在这里和其他地方环顾四周,但似乎没有任何效果.
在"点击"之后立即呈现页面是不够的.您必须给Web引擎时间以进行所需的任何调用并执行生成的JavaScript.
在您致电评估后,请考虑以下事项:
window.setTimeout(
function () {
page.render( 'google.png' );
phantom.exit(0);
},
5000 // wait 5,000ms (5s)
);
Run Code Online (Sandbox Code Playgroud)
顺便说一句 - 点击可能会或可能不会起作用,具体取决于它是什么类型的元素.如果这不起作用,我建议你在互联网上搜索如何点击DIV或它碰巧是什么类型的元素(有一种技术涉及创建一个鼠标事件).
| 归档时间: |
|
| 查看次数: |
12996 次 |
| 最近记录: |