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

时间:2014-08-10 12:38:23

标签: javascript jquery dom 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();
});

所以点击按钮后我需要转到下一页。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

假设$.click()实际有效,您需要等到页面加载完毕。

<强>的setTimeout:

你可能会感到幸运并尝试

page.evaluate(function() {
    // form vals and click
});
setTimeout(function(){
    page.render('example.png');
    phantom.exit();
}, 3000); // 3 sec timeout

waitFor选择器:

您可以使用phantomjs包中的waitFor示例等待您知道的元素仅在加载的页面上,但不在当前页面上。

waitFor loadFinished:

您可以将waitForonLoadFinished回调处理程序结合使用,以等待下一页加载。这是优选的,因为这可以每次都有效,并且不会在保守的超时时间内超调。

只需使用CasperJS

无需添加任何内容。