我已经开始使用Phantomjs,我不明白的东西。如何使用按钮更改当前页面?例如,我有一个代码:
var page = require('webpage').create();
page.open('https://ru-ru.facebook.com', function() {
page.injectJs('jQuery.js');
page.evaluate(function() {
$('#email').val('MyLogin');
$('#pass').val('MyPass');
$('#u_0_l').click();
});
page.render('example.png');
phantom.exit();
});
所以点击一个按钮后,我需要转到下一页。我该怎么做呢?
假设$.click()
实际工作,则需要等待页面加载完成。
setTimeout:
你可能觉得很幸运,试着用
page.evaluate(function() {
// form vals and click
});
setTimeout(function(){
page.render('example.png');
phantom.exit();
}, 3000); // 3 sec timeout
等待选择器:
你可以使用来自phantomjs包的waitFor来等待一个元素,你知道它只在加载的页面上,而不是在当前页面上。
waitFor loadFinished:
你可以结合waitFor和onLoadFinished回调处理器来等待下一个页面加载。这是可取的,因为它每次都可以工作,并且不会使用保守超时强制超调。
使用CasperJS: