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

标签 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();
});

因此,单击按钮后我需要转到下一页。我怎样才能做到这一点?

最佳答案

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

设置超时:

你可能会感到幸运并尝试一下

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

等待选择器:

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

等待加载完成:

您可以组合waitForonLoadFinished回调处理程序等待下一页加载。这是更可取的,因为这每次都有效,并且不会因保守的超时而造成超调。

只需使用 CasperJS :

无需添加更多内容。

关于javascript - 如何使用按钮更改 Phantomjs 中的当前页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25228685/

相关文章:

javascript - 将特殊的 HTML 字符插入 XML

javascript - 在创建的表行中使用 Bootstrap Datepicker

javascript - Ext4 组件展示

javascript - 使用隐藏输入来 POST JavaScript 函数结果

javascript - 未找到错误: DOM Exception 8 on insertBefore in event listener

php - 使用 XML DOM 打印 XML 文件的内容

javascript - 尝试使用 Promises 和 .then() 从 Firebase 获取 Image-Url

javascript - 强制链接在节点下绘制

javascript - Ajax 从同一页面上的 mysql 加载表不起作用

javascript - 我应该向不在某些页面上执行的 jQuery 添加 'if' 语句吗?