如何在Phantomjs中使用按钮更改当前页面



我已经开始使用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:

最新更新