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

私も同じ問題を抱えていました。ある日、キャスパー テストが機能しなくなりました。より正確には、casperjs はリダイレクトに従って停止しました。問題は、私のサーバーが無効な HTTP set-cookie ヘッダー (無効な日付) を返していたことです。これは、有効期限の構成上の問題が原因でした。とにかく、ヘッダー値に誤った値があると、casperjs がリダイレクト用の「場所」http ヘッダーなどの他のヘッダー値を無視するようになります。

Cookie の有効期限の問題を修正すると、HTTP set-cookie ヘッダーは問題なく、casperjs は再びリダイレクトを追跡し始めました。

お役に立てれば!

于 2012-11-23T09:19:20.647 に答える
1

キャスパーが名前でフィールドを見つけられない可能性があります。あなたは試すことができます

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 に答える