我尝试了以下代码:
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/