小编adr*_*a84的帖子

如何使用Capybara模拟鼠标悬停

基本上,我要做的是点击一个按钮,当悬停在另一个元素(其父元素)时变为可见.

我试图trigger.('mouseover')在隐藏按钮的父级上使用,但这似乎不起作用.

这是规范中的代码片段:

 # label[for ... ] -> the parent element
 page.execute_script("$('label[for=\"department_#{department.id}\"]').trigger(\"mouseover\")")     
 # le hidden button
 find(".actions").click     
 # some <li> on a list that drops down when clicking the hidden button    
 click_on("Edit department")
Run Code Online (Sandbox Code Playgroud)

错误......

 Failure/Error: click_on("Edit department")
 Selenium::WebDriver::Error::ElementNotVisibleError:
 Element is not currently visible and so may not be interacted with
Run Code Online (Sandbox Code Playgroud)

我想知道如何.actions在页面上显示按钮,以便之后点击它.

任何帮助将非常感激.

rspec ruby-on-rails capybara

47
推荐指数
4
解决办法
3万
查看次数

(Capybara)访问模态窗口

我正在写请求规格...我使用Capybara ......我遇到了一些模态窗口的麻烦.

我在测试中真正想要的是填写一个弹出模态窗口的表单.

模态是使用Twitter的Bootstrap创建的(http://twitter.github.com/bootstrap/javascript.html#modals)...它正在经历一组转换(但我不知道这是否与我要说的是什么).

我尝试过在网上找到的一些解决方法,例如:

A)在页面之间切换 page.driver.browser.window_handles

page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
Run Code Online (Sandbox Code Playgroud)

B)wait_until用于确保模态加载

def modal_wrapper_id
  '#modal-edit'
end

def modal_visible
  wait_until { find(modal_wrapper_id).visible? }
rescue Capybara::TimeoutError
  flunk 'Expected modal to be visible.'
end
Run Code Online (Sandbox Code Playgroud)

但没有一个工作......所以我想在模态窗口处于活动状态时渲染窗口句柄的数量...

所以我这样做了:

puts page.driver.browser.window_handles.length.should == 2 
Run Code Online (Sandbox Code Playgroud)

我得到了这个:

Failure/Error: page.driver.browser.window_handles.length.should == 2
           expected: 2
           got: 1 (using ==)
Run Code Online (Sandbox Code Playgroud)

据我所知,实际上我的模态窗口不存在.

对此的任何帮助将不胜感激.

谢谢.

javascript capybara modal-window

7
推荐指数
1
解决办法
3247
查看次数