5

这是我的第一次 casper 测试,所以我仍在努力学习基础知识。我想在我的登录表单上填写用户名和密码,然后提交。然后确认是否在下一页呈现“注销”链接(确认用户已登录)。

但据我所知,当调用then时,url 仍然是相同的。看起来没有帖子或重定向到下一页正在发生。我究竟做错了什么?

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,这是错误的。

4

3 回答 3

6

您可以尝试使用chrome 扩展 ressurectio在浏览器中为 casperjs 生成自动化测试。它使用起来非常简单且有用。可能在几行(-生成代码的一部分)中,您应该进行一些修复,但无论如何它非常有用和方便。

于 2012-09-21T14:35:01.070 回答
2

我有同样的问题。有一天,我的 casper 测试停止工作。更准确地说,casperjs 停止了重定向。问题实际上是我的服务器返回了无效的 HTTP set-cookie 标头(日期无效)。这是由于到期日期的配置问题。无论如何,似乎如果某些标头值中存在不正确的值,则某些东西会使 casperjs 忽略其他标头值,例如重定向的“位置”http标头。

一旦我解决了 cookie 中的过期日期问题,HTTP set-cookie 标头就可以了,casperjs 开始再次跟踪重定向。

希望这可以帮助!

于 2012-11-23T09:19:20.647 回答
1

casper 可能无法按名称找到字段。你可以试试

casper.start "http://test.local.mycompany.local/", ->
    @echo 'at ' + @getCurrentUrl()
    @fillSelectors 'form', { 'input[name=UserAlias]' : 'joe', 'input[name=Password]' : 'password' }, true

它应该与您的代码相同,但有时并非如此。

于 2014-04-26T13:11:19.440 回答