Javascript 幻影到卡斯佩斯

Javascript 幻影到卡斯佩斯,javascript,phantomjs,casperjs,Javascript,Phantomjs,Casperjs,我正在尝试将我的Phantomjs测试转换为Capserjs。幻影代码使用iframe导航到一个url,然后将一些js注入iframe,然后从iframe计算一些javascript,这使得一个新元素出现在主框架上。运行“test.execute();”会在主框架上显示一个新的div。下面的代码工作正常 幻影: open('http://localhost:1336', function() { waitFor(function () { if (page.injectJs('./pub

我正在尝试将我的Phantomjs测试转换为Capserjs。幻影代码使用iframe导航到一个url,然后将一些js注入iframe,然后从iframe计算一些javascript,这使得一个新元素出现在主框架上。运行“test.execute();”会在主框架上显示一个新的div。下面的代码工作正常

幻影:

open('http://localhost:1336', function() {
waitFor(function () {
    if (page.injectJs('./public/javascript/jquery-2.1.1.min.js')) {
        return page.evaluate(function() {
            return $('iframe#tab_1').is(':visible');
        });
    }
}, function() {
     waitFor(function() {
         page.switchToFrame(0);
         if (page.injectJs('./public/javascript/jquery-2.1.1.min.js') && page.injectJs('./public/javascript/test.js')) {
             var test = page.evaluate(function () {
                return window.document.title;
             });
             return test == 'IFrameName';
         }
    }, function() {
        var ret = page.evaluate(function () {
            test.execute(); // a function from the injected test.js
        });
        waitFor(function() {
            page.switchToParentFrame();
            return page.evaluate(function() {
                return $('div#tabheader_2').is(':visible');
            });
        }, function() {
            console.log('pass!');
            phantom.exit();
        });
    });
});
我尝试通过执行以下操作将幻影代码重写为casperjs:

var casper = require('casper').create({
    clientScripts: [
        './public/javascript/jquery-2.1.1.min.js'
    ]
});
casper.start('http://localhost:1336', function() {
    this.echo('1');
});
casper.waitForSelector('iframe#tab_1', function() {
    this.echo('2');
});
casper.withFrame(0, function() {
    this.echo('3');
    var ret = casper.page.injectJs('./public/javascript/test.js');
    this.echo(ret);
    casper.evaluate(function() {
        test.execute();
   });
    this.echo('5');
});
casper.waitForSelector('div#tabheader_2', function() {
    this.echo('pass');
});
casper.run();

但它是test.execute();从未成功发生(输出为1 2 3真5)。有人能看出这里出了什么问题吗?有没有办法检查我是否在iframe而不是主框架上执行js?是否有办法获取错误消息?

请注册到和事件。也许有错误。可能使用
--web security=false
标志运行它。在侦听事件后,似乎我的注入工作不正常。这很奇怪,因为注入返回true。谢谢你的帮助!