Tag: phantomjs casperjs

如何获得响应状态404在casper.js然后打开,而不是未定义?

任何想法为什么下面的代码不会在response var或http.status.404事件中捕获404? 我用phantomjs 1.9,casperjs 1.0.2和Windows 7运行这个 var casper = require("casper").create(), utils = require('utils'); casper.start(); casper.thenOpen('http://www.google.com/sadfafsdgfsd', function(response) { casper.capture('test.png'); utils.dump(response); }); casper.on('http.status.404', function(resource) { this.echo('wait, this url is 404: ' + resource.url); }); casper.run(function() { console.log('End'); casper.exit(); }); 理想情况下,我喜欢在thenOpen()中捕获404。 怎么做? 更新1: 我试过这个 casper.thenOpen('http://www.google.com/sadfafsdgfsd', function(response) { casper.capture('test.png'); utils.dump(response); if(this.status(false)['currentHTTPStatus'] === 404) { console.log('Error 404'); } else { […]

有没有办法将对象传递给casper.js'evaluate()?

我看到这个线程,看起来像没有办法传递复杂的对象来evaluate() https://groups.google.com/forum/#!topic/casperjs/x7I8LDFwFJ0 所以,如果我写一个对象,并希望分享不同的evaluate() ,我该怎么做? 让我们来说一些这样的愚蠢的对象,我想一次又一次地使用getData函数: var testObj = (function() { var a = 1; function test1(b) { return (a+b); } return { getData : function(arg) { return (test1(3) + arg); } } })(); 有没有可能的解决方法? 更新1: 我的意思是传递对象的function。 像下面一样,但不起作用(返回null ): var casper = require('casper').create(); casper.start('about:blank', function() { var TestObj = function() { var a = 1; function […]