我尝试了以下代码:
page.find("#{element_name}").trigger(:mouseover)
我遇到了错误:
Capybara::NotSupportedByDriverError (Capybara::NotSupportedByDriverError)
我正在使用硒网络驱动器。
根据以下URL触发器未在Selenium Web驱动器中实现:无法在Capybara测试中触发鼠标事件
是否有其他方法可以执行鼠标悬停元素,而不是在Capybara中使用触发器?
page.execute_script(some_javascript)
,特别是 some_javascript = "$(selector).trigger(event)"
。这将适用于所有具有JS能力的驱动程序。请注意,page.evaluate_script(some_javascript)
也可以工作,但是不能保证和灰心(仅在脚本返回primitives时才使用evaluate_script
)。
我的意思是:执行您想要的工作的客户端脚本(触发事件)。