1

我正在尝试为内部站点运行 casper 测试。它在预生产环境中运行,到目前为止的代码是

    var casper = require('casper').create({
                 verbose: true,
                 loglevel:"debug"
                 });

    // listening to a custom event
    casper.on('page.loaded', function() {
              this.echo('The page title is ' + this.getTitle());
              this.echo('value is: '+ this.getElementAttribute
                       ('input[id="edit-capture-amount"]', 
                        'value'));
    });

    casper.start('https://preprod.uk.systemtest.com', function() {
                 this.echo(this.getTitle());
                 this.capture('frontpage.png');
                 // emitting a custom event
                 this.emit('age.loaded.loaded');    
    });

    casper.run();

如您所见,它并不多,但我的问题是地址无法访问。捕获还显示一个空白页。不知道我做错了什么。我已经用 cnn 和 google url 检查了代码,标题和屏幕截图工作正常。不知道如何使它适用于内部站点。

4

3 回答 3

2

我有同样的问题。在我的浏览器中,我可以解析 url,但 capserjs 不能。我得到about::blank的只是一个网页。

添加--ignore-ssl-errors=yes工作就像一个魅力!

casperjs mytestjs //didn't work

capserjs --ignore-ssl-errors=yes mytestjs //worked perfect!
于 2013-05-13T22:16:55.843 回答
1

只是要确定。

您可以从运行 casper 的计算机访问 preprod.uk.systemtest.com 吗?例如使用 ping 或 wget。

您的计算机和 preprod 服务器之间是否有任何代理?或者您的系统是否配置为通过不应用于 preprod 服务器的代理?

casper代码似乎没问题。

我知道这应该是评论,但我没有足够的声誉发表评论。

于 2013-03-06T00:44:20.077 回答
0

就 CasperJs 测试在 localhost 中运行而言,为了测试自定义域/子域/主机,需要定义一些标头。

我在仅传递 HOST 标头时遇到了一些问题,例如,未正确拍摄快照。

我又添加了 2 个标题,现在我的测试运行正常:

    casper.on('started', function () {
        var testHost = 'preprod.uk.systemtest.com';

        this.page.customHeaders = {
            'HOST': testHost,
            'HTTP_HOST': testHost,
            'SERVER_NAME': testHost
        };
    });

    var testing_url: 'http://localhost:8000/app_test.php';
    casper.start(_testing_url, function() {
    this.echo('I am using symfony, so this should have to show the homepage for the domain: preprod.uk.systemtest.com');
    this.echo('An the snapshot is also working');
    this.capture('casper_capture.png');
}
于 2016-07-11T10:34:03.350 回答