这是我的第一次casper测试,所以我仍然在努力学习基础知识。我想在登录表单上填写用户名和密码,然后提交。然后确认是否在下一个页面上显示“注销”链接(确认用户已登录)。
但据我所知,当然后调用时,网址仍然相同。看起来没有帖子或重定向到下一页正在发生。我做错了什么?
casper.start "http://test.local.mycompany.local/", ->
@echo 'at ' + @getCurrentUrl()
@fill 'form', { UserAlias : 'joe', Password : 'password' }, true
casper.then ->
@echo 'at ' + @getCurrentUrl()
@test.assertExists '#log-off-link', 'log-off link exists'
casper.run ->
@test.done()
所以@getCurrentUrl的回显都返回相同的URL,这是错误的。
答案 0 :(得分:6)
您可以尝试使用chrome extension ressurectio在浏览器中为casperjs生成自动化测试。它使用起来非常简单有用。可能在几行( - 生成的代码的一部分)你应该做一些修复,但无论如何它是非常有用和方便的。
答案 1 :(得分:2)
我遇到了同样的问题。有一天,我的卡斯帕测试停止了工作。更确切地说,casperjs在重定向后停止了。问题实际上是我的服务器返回了一个无效的HTTP set-cookie标头(日期无效)。这是由于到期日期的配置问题。无论如何,似乎如果某些标头值中存在不正确的值,则会使casperjs忽略其他标头值,例如" location"用于重定向的http标头。
一旦我解决了Cookie中的过期日期问题,HTTP set-cookie标头就可以了,并且casperjs开始再次关注重定向。
希望这有帮助!
答案 2 :(得分:1)
casper可能无法按名称查找字段。你可以试试
casper.start "http://test.local.mycompany.local/", ->
@echo 'at ' + @getCurrentUrl()
@fillSelectors 'form', { 'input[name=UserAlias]' : 'joe', 'input[name=Password]' : 'password' }, true
它应该与您的代码相同,但有时它不会。