2011-12-23 30 views
12

Tôi đang sử dụng capybara, capybara-webkit, capybara-ảnh chụp màn hình cùng với dưa chuột. (Ruby 1.9.3, Rails 3.1.3) và Capybara.javascript_driver = :webkit cũng được đặt env.rbCapybara-webkit cố gắng mở example.com

Thật không may khi chạy thông số kỹ thuật dưa chuột với @javascript sẽ không bao giờ thành công vì một số lý do và ảnh chụp màn hình lỗi chỉ chụp example.com.

URL mà tôi thực sự cố gắng mở được tạo bằng kết quả bộ định tuyến đường ray cho một trong các mô hình của tôi, ví dụ: với visit products_url

Vậy làm cách nào để tránh nó kết thúc truy vấn example.com?

Mọi đầu vào đều được hoan nghênh.


Chỉ vì những nhận xét là điều sai lầm - đây là những gì tôi thấy được giải pháp:

Capybara.run_server = true 
Capybara.server_port = 7787 
Before '@javascript' do 
    Capybara.app_host = "http://127.0.0.1:#{Capybara.server_port}" 
end 

Trả lời

11

Hãy thử sử dụng visit products_path để thay thế. Họ không khuyên bạn sử dụng URL tuyệt đối trong phần "Gotchas" của README.

+0

Sử dụng products_path kết thúc với một lỗi ở nơi đầu tiên: Không thể tải URL: file: /// sản phẩm (Capybara :: driver :: Webkit :: WebkitInvalidResponseError) Nhưng một khi tôi cũng cấu hình app_host nó bắt đầu đang làm việc. Vì vậy, đó là cấu hình hiện tại của tôi: Capybara.run_server = true Capybara.server_port = 7787 Trước khi '@javascript' làm Capybara.app_host = "http://127.0.0.1:#{Capybara.server_port}" cuối Ngoài ra: http://www.emmanueloga.com/2011/07/26/taming-a-capybara.html seem để giải quyết một số cạm bẫy khác với capybara và đường ray 3.1 – pagid

+0

Dường như gotchas không áp dụng cho Webkit khi nói về URL tuyệt đối –

1

Đối với tôi, có rất nhiều sneaker "gotcha" (và tôi đã sử dụng Capybara với Rspec). Nguyên trong một spec tôi đã:

visit "foos/5" 

này làm việc tốt với Rack::Test nhưng khi tôi muốn chuyển sang lái xe webkit để kiểm tra tương tác js, tôi đã nhận rằng ngoại lệ (Không thể tải URL: file: /// sản phẩm (Capybara :: Trình điều khiển :: Webkit :: WebkitInvalidResponseError)).

Những gì tôi phải làm là thay đổi đường dẫn tôi qua đến thăm, như vậy:

visit "/foos/5" 

Succes !!

1

Đây là một hình ảnh xác thực khác, được đăng cho những người khác có thể gặp sự cố này. Tôi đã thử nghiệm bộ nhớ đệm hành động và Rails chính tạo ra trông giống như "lượt xem/www.example.com/sản phẩm". Điều này xảy ra ngay cả khi bạn sử dụng products_path làm url. Điều này có thể dẫn đến sự cần thiết phải thiết lập tên máy chủ của bạn để bạn có thể biết trước những gì bộ nhớ cache chính mong đợi.

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