Capybara / cucumber css mouseover并单击悬停事件上显示的元素

时间:2015-06-16 08:36:06

标签: ruby selenium-webdriver cucumber capybara

我是使用黄瓜和水豚的新手。我需要点击使用capybara将鼠标悬停在网页的某些元素上后显示的链接

例如att.com

1。情景正在徘徊在个人点击att.com

2。另一种情况是悬停在Shop --Bundles上 - 点击Popular Bundles

如何使用capybara的悬停和点击方法来实现这一目标,还是有其他任何方法可以实现这一目的。

尝试的选项是

  find(:xpath, ".//*[@id='ge5p_z2_p1001']").hover
  find(:xpath, ".//*[@id='ge5p_z2_t1038']").click

但它抱怨无法找到xpath

2 个答案:

答案 0 :(得分:2)

这里有两个选项,取决于你的测试

1)如果您想测试悬停事件是否触发,然后链接是可点击的,请尝试

find('.ge5p_z1-drop-down').hover
expect(page).to have_selector('.ge5p_z1-menu', visible: true) # check that menu is shown (need to have rspec for this)
click_link('att.com')

2)如果您只是想测试下拉链接带您到正确的页面,那么将它们视为链接

click_link('att.com', visible: false) # this is hidden by default

让我知道你是如何继续这样做的,我还没有对它进行过测试,但是应该把你排除在外

答案 1 :(得分:0)

单击一个按钮时出现问题,该按钮仅在鼠标放在图片上时出现(照片),经过大量研究后得到了这个:

find('#follow', visible: false).trigger(:click)

就我而言,按钮是一个链接,只有这样我才能通过测试。