Tôi đang viết một số thử nghiệm tính năng bằng Capybara, cho các trang liên quan đến nhiều lần làm mới javascript (url sẽ giữ nguyên khi người dùng nhấp vào "tiếp tục" nút, nhưng nội dung ẩn sẽ được hiển thị và nội dung hiển thị sẽ bị ẩn, do đó có số lượng văn bản/bộ chọn lớn/v.v. tại bất kỳ điểm nào "trên" trang nhưng bị ẩn khỏi người dùng).Không thể điền vào bất kỳ phần tử ẩn nào trong Capybara khi ignore_hidden_elements là đúng
Để kiểm tra chức năng này, tôi muốn tùy chọn cấu hình ignore_hidden_elements của Capybara là đúng, vì điều đó thể hiện tốt nhất trải nghiệm người dùng. Tuy nhiên, cũng có một số plugin jQuery trên trang sử dụng đồ họa ưa thích để điền vào các phần tử HTML cơ bản bị ẩn và tôi muốn sử dụng Capybara để chỉ chọn đúng giá trị cho những yếu tố đó, thay vì cố gắng sử dụng Javascript để mô phỏng thủ công người dùng tương tác với phần tử.
Cụ thể, tôi đang cố gắng kiểm tra các hộp chọn được đặt để hiển thị: không có và được lấp đầy bởi một plugin jQuery khi người dùng tương tác với họ. Tôi rất muốn có thể thực hiện việc này:
select('value', from: 'select_box')
nhưng hộp chọn bị ẩn.
Vì vậy, tôi cố gắng này:
select('value', from: 'select_box', visible: false)
nhưng điều đó không làm việc, hoặc. Tôi không thích để biến ignore_hidden_elements thành false, vì mô phỏng kém hơn người dùng và tôi phải quay lại và thêm "visible: true" vào nhiều dòng thử nghiệm.
Bất kỳ ý tưởng nào về cách thực hiện việc này? Có một tùy chọn để hủy bỏ gọn gàng hơn ignore_hidden_elements không?
EDIT - Sau phản ứng của Andrey, tôi quay ignore_hidden_elements false, và sau đó đã các Capybara cùng chọn thử nghiệm như trước đây:
select 'value', from: 'select_box_id'
và, giống như ma thuật, nó làm việc. Khi tôi lần nữa thay đổi ignore_hidden_elements true và thử dòng này:
select 'value', from: 'select_box_id', visible: false
tôi nhận được lỗi này:
Failure/Error: select 'value', from: 'select_box_id', visible: false
Capybara::ElementNotFound:
Unable to find select box "select_box_id"
Bất kỳ cơ hội này không phải là một lỗi? Tôi có nên báo cáo không?
Nếu 'select ('value', from: 'select_box', visible: false)' không hoạt động hơn 'select ('value', from: 'select_box')' with 'Capybara.ignore_hidden_elements = false' cũng không hoạt động. Nếu nó hoạt động, nó sẽ được coi là một lỗi ở Capybara. 'ignore_hidden_elements' và' visible' tùy chọn ảnh hưởng đến cùng một tham số –
Sau đó, tôi nghĩ rằng đây là một lỗi. Chi tiết ở trên. – Sasha
Phiên bản Capybara của bạn là gì? –