Warm tip: This article is reproduced from serverfault.com, please click

ruby on rails-水豚, selenium 与隐藏或显示交互:无css属性

(ruby on rails - capybara, selenium interact with hidden or display: none css properties)

发布于 2011-10-16 14:16:49

我正在使用类似的构造:

<div class="edit" style="visibility: hidden;">
  <a href="some_path" id="edit_item">Edit</a>
</div>

然后,我将鼠标悬停在此元素上变得可见,但是我很难将此动作与测试(使用 Cucumber ,水豚, selenium )进行交互。

我得到一个错误

元素当前不可见,因此可能无法与之交互(Selenium :: WebDriver :: Error :: ElementNotDisplayedError)

我想在鼠标悬停时使用Element.trigger(event),但在 selenium 中不起作用...如何与该元素交互?

Questioner
Mikhail Grishko
Viewed
11
Mikhail Grishko 2011-10-18 03:04:08

我使用来自水豚的execute_script解决了这个问题:

When /^I hover element "([^""]*)"(?: within "([^""]*)")?$/ do |id,selector|
  with_scope(selector) do
    page.execute_script("$('#{id}').mouseover();")
  end
end

When /^I click in hide element "([^""]*)"(?: within "([^""]*)")?$/ do |id,selector|
  with_scope(selector) do
    page.execute_script("$('#{id}').click();")
  end
end

但是此解决方案不适用于CSS-display:none;