我正在使用类似的构造:
<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 中不起作用...如何与该元素交互?
我使用来自水豚的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;
请注意,这
with_scope
对没有影响execute_script
。