2010-03-10 32 views
42

Tôi bắt đầu di chuyển từ dưa chuột + webrat sang dưa leo + capybara. Bây giờ, hành vi của "Tôi sẽ thấy" có vẻ hơi khác. Hầu hết các lỗi này đều không thành công, mặc dù tôi không thay đổi bất kỳ thứ gì trên trang. Tôi đã thay thế đoạn mã được tìm thấy bằng một số nội dung trên mỗi trang và cho một số văn bản mà nó hoạt động và đối với văn bản khác thì không. Tôi không thể tìm thấy bất kỳ mẫu nào trong những gì được tìm thấy trong nội dung của trang và nội dung nào không có. Webrat sử dụng để in nội dung trang mà nó tìm thấy, trong trường hợp nó không chứa cụm từ được yêu cầu. Có anyway để có capybara hiển thị những gì văn bản nó nhận được từ trang mà nó đã cố gắng để tìm các văn bản?Làm thế nào tôi có thể thấy những gì capybara được tìm thấy trong một bước dưa chuột thất bại?

+63

Là một người hoàn toàn không quen thuộc với các công nghệ có tên, đây là tiêu đề câu hỏi tràn yêu thích của tôi, bao giờ hết! – Oddthinking

+1

Vâng, nó giống như một cái gì đó liên quan đến sở thú. – ajmurmann

+1

lol, capybara nghèo! –

Trả lời

29

Hãy thử thêm bước này:

Then show me the page 
+0

Cảm ơn bạn rất nhiều! Điều này đã giúp rất nhiều! – ajmurmann

+0

Tôi biết điều này là siêu cũ, nhưng sau khi thêm chỉ thị đó, tôi phải cài đặt gem 'launchy' và nó đưa ra trang với nội dung, thật sự tuyệt vời. – rii

5

Bạn cũng có thể sử dụng "Sau đó chỉ cho tôi câu trả lời", mà kết quả đầu ra HTML để giao diện điều khiển nếu bạn không muốn sử dụng một trình duyệt.

+1

lệnh không nằm trong dưa chuột cho đường ray3 –

+6

'trang in.html' (trong định nghĩa bước của bạn) hoạt động trong Rails3 –

39

Then show me the page gọi phương thức cơ bản của webrat/capybara save_and_open_page. Tìm thấy hữu ích khi làm việc với bít tết.

21

Nếu bạn muốn trình duyệt mở trang khi trang không thành công, bạn sử dụng đá quý 'launchy'. Thêm nó vào tập tin đá quý của bạn, và sau đó trong/tính năng/hỗ trợ tạo ra một tập tin gọi là debugging.rb với nội dung:

After do |scenario| 
    save_and_open_page if scenario.failed? 
end 
+1

Điều này thật hữu ích, cảm ơn. Dường như nó sẽ được cài đặt theo mặc định với Cucumber. – dankohn

9

Nếu bạn đang sử dụng Javascript hoặc Ajax trong các trang của bạn và muốn xem những gì đang xảy ra , Tôi thấy rằng người lái xe Poltergeist rất giỏi trong việc cho phép bạn vào DOM và tìm hiểu điều gì đang xảy ra.

Nếu bạn thiết lập tài xế Capybara của bạn với các tùy chọn từ xa gỡ lỗi:

Capybara.register_driver :poltergeist do |app| 
    Capybara::Poltergeist::Driver.new(app, inspector: true) 
end 

Sau đó bạn có thể đặt dòng sau trong các bước của bạn:

page.driver.debug 

nào cháy lên một trình duyệt Chromium mới với bộ trạng thái DOM hiện tại, cho phép bạn nhận được bảng điều khiển. (Trên phiên bản Linux của tôi, tôi đã phải symlink chromium thành trình duyệt chromium nhưng nó hoạt động tốt).

Nguồn Thông tin: http://jonathanleighton.com/articles/2012/poltergeist-0-6-0/

7

Then show me the response không làm việc cho tôi với dưa chuột 1.1. tôi thấy hữu ích để viết một bước bằng lệnh Capybara của:

print page.html

này kết quả đầu ra hiện trạng của DOM

0

Bạn có thể luôn luôn có nó chụp màn hình khi một cái gì đó thất bại. Tôi gỡ lỗi rất nhiều tính năng không theo cách đó.

Các vấn đề liên quan