我正在使用CasperJS 1.0.3和PhantomJS 1.9.0。时不时会出现错误'undefined' is not an object (evaluating 'c.startedAt.getTime') [object Object],[object Object]
。更为罕见的是,b.getTime
代替c.startedAt.getTime
。它只发生在几个选择页面上,这些页面唯一的共同点就是它们非常重要。
当发生此错误时,页面正在加载并完全按预期运行,并且测试继续完全按照预期运行,但此错误导致纯通过/失败透视图中的大量错误否定。
我已经评估了此错误表面所使用的所有javascript,并且c.startedAt.getTime
和b.getTime
不在任何文件中,包括dev和minified版本。
有没有人见过这个错误?是CasperJS的问题吗? PhantomJS?事实上它只发生在几个特定页面上,这让我觉得这些页面存在问题,但就像我说的那样,我找不到任何与源代码中c.startedAt.getTime
或b.getTime
类似的东西的JavaScript。
我还以各种组合使用了CasperJS 1.0.2和PhantomJS 1.9.1,并且仍然遇到了错误。
记录一些上下文:
[info] [phantom] Step 1143/1151: done in 18ms.
[info] [phantom] Step 1144/1151 (url removed for privacy)
[info] [phantom] Step 1144/1151: done in 0ms.
FAIL Error: TypeError: 'undefined' is not an object (evaluating 'c.startedAt.getTime') [object Object],[object Object]
Error: TypeError: 'undefined' is not an object (evaluating 'c.startedAt.getTime')[object Object],[object Object]
[Error: TypeError: 'undefined' is not an object (evaluating 'c.startedAt.getTime')[object Object],[object Object]] fail failed
[Error: TypeError: 'undefined' is not an object (evaluating 'c.startedAt.getTime')[object Object],[object Object]] subject: false
# type: fail
# subject: false
答案 0 :(得分:0)
很可能是因为您没有等待加载对象。如果是特定div,请使用waitForSelector
或使用wait
。只需使用
casper.wait(11000, function(){
//your code here
});
您可能需要将casper
替换为需要casper
的对象。