casper.test.begin "Can open the homepage", (test) ->
casper.options.viewportSize = {width: 1024, height: 768}
casper.start("http://localhost:4000/", ->
@wait(1000, ->
test.assertHttpStatus 200
test.assertTitle("XYZ Corp")
test.assertExists('DIV.links')
test.assertElementCount('DIV.links', 1)
test.assertExists('IMG#companyLogo')
@capture('./test/screencaps/homepage.png')
)
).run ->
test.done()
好的,以便测试通过就好了。我想改进的是@wait调用,做@waitFor:
似乎更聪明@waitFor(
->
document.querySelectorAll('DIV.links').length > 0
->
test.assertHttpStatus 200
test.assertTitle("XYZ Corp")
然而,这总是超时。 document
对象存在,它可以运行querySelectorAll
函数,但我从来没有得到任何结果。 DIV.links
对象必须出现在页面上(我可以在屏幕截图中看到它),因为测试是在第一种情况下传递的。但在第二种情况下,条件总是错误的。 waitFor
文档为here。
奖金问题:我可以调试casper测试吗?
答案 0 :(得分:2)
4天,没有回答,我自己想出来了:
.then( ->
@open("theUrl")
@waitUntilVisible("DIV.alpha",
->
test.assertExists("DIV.alpha") # doesnt hurt to check
test.assertExists("DIV#beta")
@capture('./test/screencaps/waitUntilVisible.png')
->
test.fail('failed to find div.alpha')
3000
)
)