Tôi đang sử dụng capybara để kiểm tra ứng dụng đường ray của tôi để thử nghiệm tích hợp. Trong ứng dụng của tôi có nhiều cuộc gọi Lightbox và Ajax và js.Làm thế nào để thêm điều kiện chờ đợi trong kịch bản capybara?
@javascript
Scenario: I agree functionatilty
Given I go to the create account page
When I click on button which is given as image "lnkTerms2"
And I follow "i_agree"
Then I go to the create account page
Mã trên đây lnkTerms2 và id sẽ giúp gọi hàm js để mở hộp đèn. Và tôi đang nhận được một lỗi như
Element is not currently visible and so may not be interacted with (Selenium::WebDriver::Error::ElementNotDisplayedError)
[remote server] resource://fxdriver/modules/atoms.js:9519:in `unknown'
[remote server] file:///tmp/webdriver-profile20111117-6876-18cfcfp/extensions/[email protected]/components/nsCommandProcessor.js:256:in `unknown'
[remote server] file:///tmp/webdriver-profile20111117-6876-18cfcfp/extensions/[email protected]/components/nsCommandProcessor.js:305:in `unknown'
[remote server] file:///tmp/webdriver-profile20111117-6876-18cfcfp/extensions/[email protected]/components/nsCommandProcessor.js:320:in `unknown'
[remote server] file:///tmp/webdriver-profile20111117-6876-18cfcfp/extensions/[email protected]/components/nsCommandProcessor.js:197:in `unknown'
(eval):2:in `send'
(eval):2:in `click_link'
./features/step_definitions/web_steps.rb:300:in `/^I click on button which is given as image "([^"]*)"$/'
features/Sign_up_process.feature:61:in `When I click on button which is given as image "lnkTerms2"'
Vấn đề là như chức năng này được gọi là trong webdriver, nó không nhận được thời gian để tải javascript và cuộc gọi ajax. Và hộp đèn không mở. Vì vậy, hãy đề xuất cho tôi bất kỳ giải pháp nào.
Ngoài ra nếu giả sử tôi viết dòng
When I click on button which is given as image "lnkTerms2"
sau 4-5 tuyên bố sau đó nó đang làm việc tốt như nó được thời gian để tải js.
đó không phải là một giải pháp tốt, nó thêm một sự chậm trễ buộc phải thực hiện kiểm tra của bạn, nếu tái sử dụng này có thể thêm rất nhiều thời gian. cách thích hợp để giải quyết vấn đề này đang chờ cho đến khi một phần tử hiển thị. – Benja
bất kỳ hình thức nào của giấc ngủ cố định, ngay cả khi nó lấy giá trị từ kịch bản nói chung là một ý tưởng khủng khiếp, trừ khi kịch bản thực sự là về trải nghiệm người dùng liên quan đến việc chờ đợi khoảng thời gian cụ thể đó (như trái ngược chờ hiển thị cập nhật vv , ví dụ 'đồng bộ hóa') –