2012-08-29 82 views
5

這是我的第一個casper測試,所以我仍然在基礎知識方面苦苦掙扎。我想填寫登錄表單上的用戶名和密碼,然後提交。然後確認是否在下一頁頁面上呈現「註銷」鏈接(確認用戶已登錄)。爲什麼CasperJS表單不會重定向到下一頁?

但據我所知,當然後被調用,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,這是錯誤的。

+0

很難不看到你正在測試的實際站點 – NiKo

+0

第二'casper.then'不會等待url執行前改變,在這種情況下,我會使用'casper.waitForUrl()'做任何進一步的斷言。 – rusln

回答

6

您可以嘗試使用chrome extension ressurectio在瀏覽器中爲casperjs生成自動化測試。它使用起來非常簡單並且非常有用。可能在幾行( - 生成的代碼的一部分),你應該做一些修復,但無論如何,這是非常有用和方便。

2

我有同樣的問題。有一天我的casper測試停止了工作。更確切地說,casperjs在重定向後停止。問題的確是我的服務器返回了一個無效的HTTP set-cookie頭(日期無效)。這是由於到期日期的配置問題。無論如何,似乎如果在某個標頭值中存在不正確的值,casperjs會忽略其他標頭值,例如重定向的「位置」http標頭。

一旦我解決了cookie中過期日期的問題,HTTP set-cookie頭就可以了,casperjs開始再次跟蹤重定向。

希望這會有所幫助!

1

casper不可能按名稱找到字段。你可以嘗試

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

應該指的是相同的代碼,但有時事實並非如此。

相關問題