标签: casperjs

有没有办法逐步介入CasperJS代码和调试

虽然我已经使用CasperJS一段时间了,并依赖控制台日志进行调试.我想知道是否有任何IDE支持CasperJS一步一步的调试或有其他方式(远程调试)介入CasperJS代码?有人成功完成了吗?任何信息都会有所帮助.

谢谢,

debugging remote-debugging casperjs

17
推荐指数
1
解决办法
6937
查看次数

Casperjs检查一个javascript对象

如何检查casperjs脚本中的对象?

我试过console.log(arguments)但它只打印[object Arguments]或[object Object].

我希望得到类似的结果:{'firstparam':'value'...}

就像在Javascript控制台或Node.js中一样......

也许这是一个Phantomjs的问题,我不确定......

phantomjs casperjs

16
推荐指数
1
解决办法
6909
查看次数

如何测试CasperJS中是否存在选择器?

我知道我可以用:

casper.test.assertExists(#selector);
Run Code Online (Sandbox Code Playgroud)

但我想实际存储它是否存在于布尔变量中.

就是这样的:

var exists = SelectorExists(#selector);
Run Code Online (Sandbox Code Playgroud)

javascript casperjs

16
推荐指数
1
解决办法
9950
查看次数

在PhantomJs中下载POST请求响应中附件的文件

我想下载一个CSV文件,它是通过POST请求点击按钮生成的.我在casperJs和phantomJS论坛上进行了最好的研究并空手而归.在像firefox这样的普通浏览器中,在发布请求后会出现浏览器下载对话窗口.如何在PhantomJS中处理这种情况

TTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
Content-disposition: attachment;filename=ExportData.csv
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
Date: Fri, 19 Apr 2013 23:26:40 GMT
Content-Length: 65183
Run Code Online (Sandbox Code Playgroud)

phantomjs casperjs

16
推荐指数
1
解决办法
2万
查看次数

如何通过填写CasperJs中的表单进行登录

以下是我拥有的登录表单的hlml

<div class="login_area_user">

            <form method="post" action="https://www.tradus.com/login?dest_url=https://www.tradus.com/cart/select-address" id="user-login">
            <input type="hidden" value="1" name="form_submit">

                <h3 style="display:inline-block;">Already a Member</h3>

                <p id="login-main-center-right-descp">You can use tradus login id and password</p>

                <div class="login-row">
                    <label class="colorBlack">Email / Login*</label>
                    <input class="login-field" type="text" name="name" id="edit-namepopup">
                </div> <!-- [/login-row] -->

                <div class="login-row">
                    <label>Password</label>
                    <input class="login-field" type="password" id="edit-passpopup" name="pass">
                </div> <!-- [/login-row] -->

                <div class="login-row">            
                    <a class="forgotPassword" href="/forgot_password">Forgot your password?</a>
                    <!--input type="checkbox" name="remember" /><span>Remember me</span-->
                </div>

                <div class="login-row">
                    <input class="login-button" value="Login" type="submit">
                </div>

                <input type="hidden" name="op" value="Log in">

            </form>

        </div>
Run Code Online (Sandbox Code Playgroud)

我使用以下代码登录:

this.fill('form#user-login', …
Run Code Online (Sandbox Code Playgroud)

javascript fill phantomjs casperjs

16
推荐指数
2
解决办法
3万
查看次数

什么是casperjs的可疑测试

在运行测试时.

FAIL 35 tests executed in 16.806s, 35 passed, 0 failed, 2 dubious, 0 skipped. 
Run Code Online (Sandbox Code Playgroud)

"可疑"意味着什么以及如何看待哪个断言或测试用例是可疑的?

casperjs

15
推荐指数
2
解决办法
2176
查看次数

CasperJS不加载页面资源

如何判断casper不加载图片,css,js视频等.所以我只对DOM元素感兴趣.

casperjs

14
推荐指数
1
解决办法
5922
查看次数

如何用phantomjs刮取链接

可以PhantomJS使用的替代BeautifulSoup

我正在尝试搜索Etsy并访问所有链接.在Python中,我知道如何做到这一点(使用BeautifulSoup)但今天我想知道我是否可以使用PhantomJS做同样的事情.我没有走得太远.

该脚本应在Etsy上搜索"hello kitty"并返回所有产品 <a class="listing-thumb" href=...></a>并在控制台中打印.理想情况下,我稍后会访问它们并获取我需要的信息.现在它只是冻结了.有任何想法吗?

var page = require('webpage').create();
var url = 'http://www.etsy.com/search?q=hello%20kitty';

page.open(url, function(status){
    // list all the a.href links in the hello kitty etsy page
    var link = page.evaluate(function() {
        return document.querySelectorAll('a.listing-thumb');
    });
    for(var i = 0; i < link.length; i++){ console.log(link[i].href); }
    phantom.exit();
});
Run Code Online (Sandbox Code Playgroud)

我玩过CasperJS玩具,可能更适合这个.

javascript beautifulsoup phantomjs casperjs

14
推荐指数
2
解决办法
3万
查看次数

CasperJS循环或遍历多个网页?

我有一个CasperJS脚本,可以从一个网页上删除评级和日期.现在我想从同一网站下的多个页面中抓取相同的数据.如何在给定此代码的情况下遍历不同的子页面:

var ratings = [];
var dates = [];
var casper = require('casper').create({

    pageSettings: {
        loadImages:  false,         
        loadPlugins: false          
    },
    logLevel: "debug",             
    verbose: true                   
});

var fs = require('fs');

function getRatings() {
    var ratings = document.querySelectorAll('#BVRRRatingOverall_Review_Display > div.BVRRRatingNormalImage > img');
    return Array.prototype.map.call(ratings, function(e) {
        return e.getAttribute('title');
    });
}

function getDate() {
    var dates = document.querySelectorAll('#BVSubmissionPopupContainer > div.BVRRReviewDisplayStyle5Header > div.BVRRReviewDateContainer > span.BVRRValue.BVRRReviewDate');

    return Array.prototype.map.call(dates, function(e) {

        return e.innerHTML;

    });
}

casper.start('http://www.t-mobile.com/cell-phones/samsung-galaxy-s-5.html?bvrrp=9060/reviews/product/1/598aea53-16d0-4c12-b53a-105157092c52.htm', function(){

    this.echo('hi');
});

casper.then(function() {

    ratings = this.evaluate(getRatings);
    dates = …
Run Code Online (Sandbox Code Playgroud)

javascript foreach loops web-scraping casperjs

14
推荐指数
2
解决办法
1万
查看次数

如何在CasperJS中获取当前执行的文件目录

我正在使用CasperJS检查一些站点并将JSON数据写入文件.文件应写入public/data文件夹.但是当我试图casperjs 在我的项目目录(例如我的主目录)之外调用时,它直接写入文件~/public/data,而不是在我的项目目录中.

我该怎么解决这个问题?我还没有找到如何获取__dirname或__filename.

phantomjs casperjs

13
推荐指数
2
解决办法
6162
查看次数