我在页面上有一个链接,只有当鼠标悬停在某个元素上时才会出现。但我无法弄清楚如何模仿这个,然后点击链接,这样我就可以使用Capybara和Selenium进行黄瓜测试。
任何人都知道如何做到这一点?我已经尝试执行javascript并且还尝试直接与selenium驱动程序交谈,但到目前为止我没有太多运气......
答案 0 :(得分:3)
这个问题已经有几年了,所以答案可能已经改变了。在较新版本的Capybara中,根据您使用的驱动程序,有几种不同的方法可以执行此操作。
对于selenium,您可以执行javascript:
page.execute_script '$("#element").trigger("mouseover")'
较新版本的selenium-webdriver支持悬停方法:
find('#element').hover
对于capybara-webkit,驱动程序支持触发元素上的事件:
find('#element').trigger(:mouseover)
答案 1 :(得分:2)
在fireEvent
事件中使用Selenium的mouseover
,然后暂停所需的悬停时间。
答案 2 :(得分:0)
我曾经使用过类似的用户,看下这可能对你有帮助。
使用Selenium IDE。
1.导航到所需页面
2.启动selenium IDE并获取Link目标
3.将命令更改为 mouseOver 双击Selenium IDE中的命令
4.它将显示您需要的链接。
5.再次开始录制并录制所需的链接。
当您双击mouseOver命令时,它会通过IDE创建鼠标模拟,您可以使用鼠标来记录弹出链接。
由于
答案 3 :(得分:0)
我终于成功让Capybara + Selenium驱动程序“悬停”在一个元素上。这是我正在使用的代码:
module Capybara
module Node
class Element
def hover
@session.driver.browser.action.move_to(self.native).perform
end
end
end
end