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
文档在这里。
额外的问题:我可以调试 casper 测试吗?