Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CasperJS测试在某些机器上失败,在其他机器上成功_Javascript_Node.js_Testing_Phantomjs_Casperjs - Fatal编程技术网

Javascript CasperJS测试在某些机器上失败,在其他机器上成功

Javascript CasperJS测试在某些机器上失败,在其他机器上成功,javascript,node.js,testing,phantomjs,casperjs,Javascript,Node.js,Testing,Phantomjs,Casperjs,有一个奇怪的问题,某些CasperJS测试在某些机器(所有不同版本的OS X)上失败,而在其他机器上没有失败,即使CasperJS、PhantomJS、Node和NPM的版本都是相同的。我错过了什么?代码的简化版本如下: var userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:36.0) Gecko/20100101 Firefox/36.0', url = 'https://www.google.com/sea

有一个奇怪的问题,某些CasperJS测试在某些机器(所有不同版本的OS X)上失败,而在其他机器上没有失败,即使CasperJS、PhantomJS、Node和NPM的版本都是相同的。我错过了什么?代码的简化版本如下:

var userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:36.0) Gecko/20100101 Firefox/36.0',
    url = 'https://www.google.com/search?q=apple&ie=utf-8&oe=utf-8',
    selector = '#tads.c',
    timeoutMs = 10000;

casper.test.begin("test1", 1, function(test) {    
        casper.userAgent(userAgent);    
        casper.start(url)
        .waitForSelector(selector, function() {    
                test.assertExists(selector, 'selector: ' + selector);    
            }, function timeout() {    
                test.fail(selector + ' timed out after ' + timeoutMs + ' ms');    
            }, timeoutMs)    
        .run(function() {    
                test.done();
            });
    });

1.如果PhantomJS的版本实际上是相同的,请检查
require(''utils).dump(phantom.version)
。2.可能是网络相关的。这些机器(工作/不工作)是否在同一网络上?同一(wifi)网络和同一phantom.version是否可能测试按预期工作,并且失败是由不同的搜索结果造成的?作为一个快速检查,我打开了您在浏览器中测试的链接——它没有为我显示任何ads块——document.querySelector(“#tads.c”)返回null,在这种情况下测试将失败。尝试保存失败时的屏幕截图,这样你就可以看到测试失败时页面上会发生什么是的,我们已经尝试过了。在测试失败的情况下(即使在不同的网络上,也总是同一组机器),我们会得到一个空白的屏幕截图。在通过的机器上,我们得到了预期的屏幕截图——与通过浏览器访问时相同。此外,这不是间歇性问题——给定的测试机器每次都给出相同的结果,无论是失败还是通过。