我正在使用水豚1.0.0,並且我的頁面中有一個鏈接,當鼠標懸停在該模塊上時,鏈接會顯示。所以我想在測試中觸發鼠標,這樣我就可以點擊那個隱藏的鏈接。 我GOOGLE了它,但無法找到適合我的解決方案。你們能幫助我嗎?無法在水豚測試中觸發鼠標事件
回答
我選擇使用WebKit的水豚,而可悲的是我不得不求助於執行JavaScript使用jQuery:
page.execute_script('$(".ClassSelector").trigger("hover")')
此博客答案:
http://aokolish.me/blog/2012/01/22/testing-hover-events-with-capybara
page.find('#element').trigger(:mouseover)
然而,這與硒驅動程序不起作用:
http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Element#trigger-instance_method
+1使用webkit驅動程序爲我工作。謝謝! – dusan
我還有很多麻煩讓它工作。網上有很多相互矛盾的信息。以下是我做的:
設置:導軌3.2.1,1.1.2水豚,rspec的2.8.0,硒的webdriver 2.20.0
page.execute_script "$('tr.user-#{user.id}').trigger('mouseover')"
這將導致先前隱藏鏈接出現(憑藉jQuery的懸停功能),然後可以訪問have_link
和click_link
。
注意:你做不是想寫page.evaluate_script
,因爲這不起作用。
編輯:嗯,我剛剛意識到@凱利 - 薩頓的解決方案是我的一樣。所以我可以證實這一點。
可見性問題,有時它有助於改變窗口大小的吵鬧鬼。我在spec_helper.rb
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, window_size: [1280, 600])
end
幹過 除了使用或者find('#element').hover
或page.execute_script "$('#element_2').trigger('mouseover');"
一個還必須通過js: true
到describe
塊,以打開JavaScript(除非你做了,在您的配置)。這使我絆倒了一下。
- 1. 在水豚/ Selenium測試觸發hoverIntent
- 2. 觸發事件匹配的水豚測試
- 3. Rspec /水豚 - 選擇表格應該在測試時觸發Onchange事件
- 4. JQuery:鼠標事件觸發
- 5. 未觸發鼠標事件
- 6. jQuery觸發鼠標事件
- 7. 在SWT中觸發鼠標事件?
- 8. 無法從FakeItEasy mock中觸發事件在單元測試中
- 9. 如何在鼠標輸入事件中觸發鼠標中鍵?
- 10. 水豚並不在測試
- 11. 無法在鼠標事件
- 12. 在iPad上觸發jQuery鼠標事件
- 13. 標籤不會觸發鼠標事件
- 14. 水豚,CanCan,測試與開發
- 15. 運行併發測試黃瓜/水豚
- 16. 由水豚測試觸發的灰燼轉變
- 17. 黃瓜/水豚測試x標籤
- 18. 關於使用水豚&Rspec的欄杆測試...沒有發現水豚元件
- 19. 將鼠標懸停在水豚上
- 20. 鼠標懸停功能在水豚?
- 21. 在水豚測試中存留時間
- 22. 在水豚測試中關閉動畫
- 23. 多個鼠標事件在點擊鼠標時觸發
- 24. 用水豚測試銷燬方法
- 25. 用水豚測試斜體
- 26. rspec水豚 - 子域測試
- 27. 水豚測試問題
- 28. 水豚登錄測試
- 29. 如何測試水豚?
- 30. Rspec /水豚 - 測試html lang
人們需要停止提示這一點。總是有方法使用水豚,驅動程序或本地元素來做到這一點。執行腳本立即執行,並且不尊重任何類型的範圍。 – Senjai
你能提供你在這裏描述的每種方法的代碼示例嗎? –