javascript - 使用 casperjs 连接到 whatsappweb
问题描述
当尝试通过 casperJs 连接到 whatsapp 网络时,我设法进入加载页面,但没有进一步。我已经通过电话连接到一个 whatsapp 帐户,现在我只是在使用 casper 导航到页面时复制请求标头。它成功找到了#app,但#pane-side 似乎永远不会加载。当通过 chrome 查看开发工具时,我看到在最初调用 whatsapp 之后发出了很多额外的请求,所以我认为 casper 没有正确加载 js 脚本或其他东西。
var casper = require('casper').create();
casper.start().thenOpen('https://web.whatsapp.com/', {
method: 'get',
headers: {
"Upgrade-Insecure-Requests": 1,
"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
"X-DevTools-Emulate-Network-Conditions-Client-Id": "reallyLongHexString"
}
}, function() {
this.echo('attempting to visit whatsapp');
});
casper.wait(5000, function() {
this.echo("I've waited for 5 seconds");
})
casper.then(function() {
this.echo('First Page: ' + this.getTitle());
this.capture('0_firstpage.png');
});
casper.waitForSelector('#initial_startup',
function() {
this.echo('made it to initial_startup | startup.png');
this.captureSelector('1_startup.png', '#app');
},
function() {
this.echo('timeout failed after 5 seconds');
},
5000);
casper.waitForSelector('#app',
function() {
this.echo('made it to "app" | whatsapp.png');
this.captureSelector('2_whatsapp.png', '#app');
},
function() {
this.echo('timeout failed after 5 seconds');
},
5000);
casper.waitForSelector('#pane-side',
function() {
this.echo('made it to "pane-side" | messages.png');
this.captureSelector('3_messages.png', '#app');
},
function() {
this.echo('timeout failed after 15 seconds');
},
15000);
casper.then(function() {
this.echo('End of script: ' + this.getTitle());
this.capture('4_end.png');
});
casper.run();
以上是完整的脚本。让我知道你的想法。谢谢
解决方案
推荐阅读
- r - 有条件地用R中数据框中的字符串替换NA
- java - 在一个线程中创建数据库实体并尝试在另一个线程中检索相同的实体会给出不同的结果
- qt - 如何将定义列表加载到 QML 中?
- python - 读取 SAS 文件以获取元信息
- c# - 在 IIS 中未找到返回 404 的 MVC 控制器操作上调用 Get
- android - 注释处理器现在必须显式声明。- 黄油刀7.0.1.jar(黄油刀7.0.1.jar)
- java - 如何使用 java 10 的应用程序类数据共享功能?
- python - 在迁移文件中正确声明空的 Django PostgreSQL JSONField 默认值
- git - 如何以编程方式编辑旧的 git 提交消息?
- python - Flask-socketio - 未能设置“Access-Control-Allow-Origin”响应标头