Tôi có một trang trên trang web của mình mà tôi đang cố gắng kiểm tra yêu cầu người dùng dành ít nhất năm giây trên trang trước khi tiếp tục. Có cách nào với Capybara để có được bài kiểm tra dưa chuột của tôi để tạm dừng trên trang đó và chờ năm giây trước khi tiếp tục với bước tiếp theo tôi mô tả?Chức năng ngủ ở Capybara/Dưa chuột?
7
A
Trả lời
20
Tôi có điều này trong định nghĩa bước của tôi:
Given /^I wait for (\d+) seconds?$/ do |n|
sleep(n.to_i)
end
Trong tính năng của bạn:
Given I am on the whatever page
And I wait for 5 seconds
And I follow "A Link"
# etc...
1
Sẽ còn tuyệt vời để xác định động các đơn vị thời gian như thế này một:
Given /^I wait for (\d+) (second|minute|hour)s?$/ do |n, unit|
sleep(eval("#{n.to_i}.#{unit}"))
end
+0
Không bao giờ sử dụng 'eval'. Bạn chỉ yêu cầu rắc rối. 'sleep (n.to_i.send (unit))' –
Tôi cũng sẽ đề nghị, ngoài bước ngủ chung, ngủ được thêm vào một bước cụ thể được dàn dựng theo mục đích của nó. Ví dụ: nếu bước là "Đã cho tôi đang ở trên trang chờ", bên trong bước đó @ blim8183 sẽ ngủ trong 5 giây. Sau đó, bước tập trung hơn này có thể được sử dụng. – MrDanA
Điều đó hoạt động hoàn hảo. Cảm ơn! – blim8183
Nếu bạn đặt bước ngủ chung này trong tệp bước, bạn có thể [gọi nó từ các bước khác] (https://github.com/cucumber/cucumber/wiki/Calling-Steps-from-Step-Definitions) bằng ' bước "Tôi chờ 5 giây". Tôi sử dụng điều này để thêm sự chậm trễ nhỏ vào nhiều bước khác. – Jazz