【问题标题】:How to change current page in Phantomjs using buttons? [duplicate]如何使用按钮更改 Phantomjs 中的当前页面? [复制]
【发布时间】:2014-10-03 10:05:01
【问题描述】:

我已经开始使用 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();
});

因此,单击按钮后,我需要转到下一页。我该怎么做?

【问题讨论】:

标签: javascript jquery dom phantomjs


【解决方案1】:

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

设置超时:

您可能会感到幸运并尝试使用

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

waitFor 选择器:

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

等待加载完成:

您可以将waitForonLoadFinished 回调处理程序结合起来等待下一页加载。这是更可取的,因为它每次都可以工作,并且不会在保守的超时情况下强加过冲。

只需使用CasperJS

没有什么要补充的了。

【讨论】:

    猜你喜欢
    • 2015-04-27
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    相关资源
    最近更新 更多