首页 > 解决方案 > CasperJS:从提交后加载的页面读取网页

问题描述

我的目标是使用 casperJS 从发布页面(表单提交后加载的页面)读取数据。

说明:我在 casperJS 中有脚本,它读取网页http://www.example.com/details并登录控制台。从这个初始页面阅读我没有问题。现在有一个 href 链接,点击它后,它会将表单提交到相同的 url(表单操作 self)http://www.example.com/details并在 dom 元素之一中更新新获取的数据。

我想在表单提交后页面加载后读取新获取的数据。

这是执行此过程的脚本部分。

casper.start('http://www.example.com/details', function () {
this.page.injectJs('/path../to../jquery.min.js');
casper.evaluate(function () {
    var all_data = $('.selector').text();
    console.log(JSON.stringify(all_data));
});

// submitting hidden form by clicking href
$('.formSubmit').click();
casper.then(function(){
    casper.wait(5000, function(){
        casper.evaluate(function () {
            var new_data = $('.selector').text();
            console.log(JSON.stringify(new_data));
            });
        });
    });
});

标签: javascriptphantomjscasperjs

解决方案


也许它根本没有提交表单,请尝试:

casper.then(function(){ this.mouseEvent('click','.formSubmit'); });

代替$('.formSubmit').click();


推荐阅读