2011-08-18 33 views
7

Tôi đang sử dụng Capybara 1.0.0 với cấu hình mặc định.Capybara click_link đôi khi không hoạt động

click_link "một số văn bản hiện có" # --sometimes-- không hoạt động. kỳ dị.

find_link "một số văn bản hiện có" # luôn hoạt động

Đây có thể là sự cố thời gian; hoặc có thể không phải vì find_link hoạt động rực rỡ ok.

Tôi đã kiểm tra tệp đầu ra được sản xuất thông qua save_and_open_page, cũng ok. Ngoài ra, tôi đã tăng thời gian chờ đợi vv Nhưng, cũng không giúp được gì.

Trước khi tôi goto nguồn gốc của Capybara hoàn toàn. Bạn nghĩ điều gì đã biến mất?

Trân

+0

prolly vấn đề là ở cách bạn định vị các yếu tố với xpath hoặc css selectors? –

Trả lời

0

Bất cứ khi nào tôi nhận được vấn đề liên tục với các bài kiểm tra của tôi là một trong những điều đầu tiên tôi kiểm tra là chuỗi họ đang được chạy trong.

Tùy thuộc vào cách bạn đã thiết lập RSpec, nó có lẽ là randomising thứ tự các thông số kỹ thuật được chạy trong mỗi lần bạn chạy bộ. Điều này có nghĩa là đôi khi mọi thứ đều trôi qua và những lúc khác thì không.

Rspec sẽ xuất ra giá trị hạt giống mà bạn có thể sử dụng để chạy lại các thử nghiệm theo cùng thứ tự cho mục đích gỡ lỗi.

0

Hãy thử sử dụng cú pháp này click_link('', href: some_path).

0

Liên kết có thể được bao bọc với một phần tử khác (như cửa sổ bật lên) hoặc được kích hoạt bởi Ajax sau một thời gian sau khi trang được tải. Nó phụ thuộc mạnh mẽ vào loại trang bạn thao tác.

Như một lời khuyên chung, tôi sẽ khuyên bạn nên sử dụng Finders trực tiếp, như:

# Note :visible => true, it will throw an error if element is overlapped 
    find(:xpath, "//a[.='some existing text']", visible: true).click 

    # Another approach 
    wait_until(15) { first(:xpath, "//a..", visible: true) }.click 
Các vấn đề liên quan