Kyl*_*ley 10 capybara selenium-webdriver
上个月(2013年6月)的某个时候,我们的几个Capybara测试开始失败主要是因为他们试图点击的按钮不在视野中.理想情况下,我想弄清楚改变了什么.我们目前正在使用selenium-webdriver 2.33,但我已经尝试回到2.29但它仍然无效.我们目前只针对Firefox运行,也许是因为新版本的Firefox.
除此之外,我无法弄清楚如何将按钮滚动到视图中.从我收集的内容来看,我可以使用scrollIntoView,但不知道如何在Capybara步骤中调用它.我试过以下变化:
Capybara.current_session.driver.execute_script("arguments[0].scrollIntoView(true;)", find_button(button).native)
Run Code Online (Sandbox Code Playgroud)
但没有运气因为find_button本身不起作用.
注意:我们根据按钮的文字进行选择.可以根据ID进行选择,但需要对UI测试进行大量更改,因此我们希望避免使用它.
Gra*_*mey 27
我通常有一个模块JavascriptDriver用于在测试中包含Selenium功能,在那里我定义了一个帮助方法:
module JavascriptDriver
# other code that prepares capybara to work with selenium
def scroll_to(element)
script = <<-JS
arguments[0].scrollIntoView(true);
JS
Capybara.current_session.driver.browser.execute_script(script, element.native)
end
end
Run Code Online (Sandbox Code Playgroud)
然后在测试中,您可以通过传递正常的Capybara元素来利用该代码:
scroll_to(page.find("button.some-class", visible: false))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12902 次 |
| 最近记录: |