首页 > 解决方案 > 使用 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();

以上是完整的脚本。让我知道你的想法。谢谢

标签: javascriptphantomjscasperjswhatsapp

解决方案


推荐阅读