ruby - 有没有其他方法可以触发 capybara ?

标签 ruby capybara mouseover

我尝试了以下代码:

page.find("#{element_name}").trigger(:mouseover)        

我收到错误:

Capybara::NotSupportedByDriverError (Capybara::NotSupportedByDriverError)

我正在使用 selenium 网络驱动程序。

根据以下 URL 触发器未在 selenium 网络驱动程序中实现: Unable to trigger mouse event in Capybara test

除了在 capybara 中使用触发器之外,是否有任何替代方法来执行鼠标悬停元素而不是使用触发器?

最佳答案

page.execute_script(some_javascript),特别是 some_javascript = "$(selector).trigger(event)"。这将适用于所有支持 js 的驱动程序。请注意,page.evaluate_script(some_javascript) 也可以工作,但不能保证也不鼓励这样做(仅当脚本返回原语时才使用 evaluate_script)。

我的意思是:执行客户端脚本来执行您想要的操作(触发事件)。

关于ruby - 有没有其他方法可以触发 capybara ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13951230/

相关文章:

ruby-on-rails - 我应该如何使用 rspec 测试路由和 Controller ?

jquery - Capybara jQuery 脚本适用于 Selenium 驱动程序,但不适用于 Poltergeist

ruby - 使用 cucumber 中的标题登录

javascript - 使用 mouseover 和 mouseout 而不是 :hover

ruby - Teamcity 部署到 Heroku

ruby-on-rails - 为 Rails 项目创建一个 gem

php - 用于 PHP/Ruby 的 NetBeans IDE

google-maps-api-3 - 为什么我的集群没有触发 MarkerClustererPlus.js 的 mouseover 和 mouseout 事件?

jquery - 文档就绪时的 CSS3 触发鼠标悬停状态

ruby - 如何从文本 block 中删除重复项