2012-08-29 9 views
5

Đây là thử nghiệm casper đầu tiên của tôi, vì vậy tôi vẫn đang đấu tranh với những điều cơ bản. Tôi muốn điền tên người dùng và mật khẩu vào biểu mẫu đăng nhập của tôi, sau đó gửi nó. Và sau đó xác nhận nếu liên kết 'đăng xuất' được hiển thị trên trang tiếp theo (xác nhận rằng người dùng đã đăng nhập).Tại sao biểu mẫu CasperJS gửi không chuyển hướng đến trang tiếp theo?

Nhưng theo như tôi có thể biết, khi thì được gọi, url vẫn giống nhau. Có vẻ như không có bài đăng hoặc chuyển hướng nào đến trang tiếp theo đang diễn ra. Tôi đang làm gì sai?

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() 

Vì vậy, tiếng vọng của @getCurrentUrl đều trả về cùng URL, sai.

+0

Rất khó giúp đỡ mà không thấy trang web thực tế bạn đang kiểm tra – NiKo

+0

giây 'casper.then' sẽ không đợi url thay đổi trước khi được thực thi, trong trường hợp này tôi sẽ sử dụng' casper.waitForUrl() 'trước thực hiện thêm bất kỳ xác nhận nào. – rusln

Trả lời

6

Bạn có thể thử sử dụng chrome extension ressurectio để tạo thử nghiệm tự động, cho casperj, trong trình duyệt. Nó rất đơn giản để sử dụng và hữu ích. Có thể trong một vài dòng (- một phần của mã được tạo), bạn nên thực hiện một số sửa lỗi nhưng dù sao nó rất hữu ích và tiện lợi.

2

Tôi gặp vấn đề tương tự. Một ngày kiểm tra casper của tôi ngừng hoạt động. Chính xác hơn casperjs dừng sau chuyển hướng. Vấn đề thực sự là máy chủ của tôi đã trả lại tiêu đề cookie set-HTTP không hợp lệ (có ngày không hợp lệ). Điều này là do sự cố cấu hình với ngày hết hạn. Dù sao, có vẻ như nếu có một giá trị không chính xác trong một số giá trị tiêu đề, điều gì đó làm cho casperjs bỏ qua các giá trị tiêu đề khác, chẳng hạn như tiêu đề http "vị trí" cho chuyển hướng.

Khi tôi đã khắc phục sự cố với ngày hết hạn trong cookie, tiêu đề cookie set-set HTTP đã ổn và casperj bắt đầu theo dõi lại các chuyển hướng.

Hy vọng điều này sẽ hữu ích!

1

Có thể casper không tìm thấy các trường theo tên. Bạn có thể thử

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

Nó có nghĩa giống như mã của bạn, nhưng đôi khi không có.