Capybara click_link有时不起作用

时间:2011-08-18 16:10:12

标签: testing capybara

我正在使用Capybara 1.0.0默认配置。

click_link“一些现有文字”# - sometimes--不起作用。怪异。

find_link“一些现有文字”#always always

这可能是一个时间问题;或许不是因为find_link工作得非常好。

我已经通过save_and_open_page检查了生成的输出文件,也没问题。此外,我增加了等待时间等。但是,两者都没有帮助。

在我完全转向Capybara之前。你认为这出了什么问题?

此致

3 个答案:

答案 0 :(得分:0)

每当我的测试出现间歇性问题时,我检查的第一件事就是它们的运行顺序。

根据您的Rspec设置方式,可能会随机化每次运行套件时运行规范的顺序。这意味着有时候一切都会过去,有时则不会。

Rspec将输出一个种子值,您可以使用该值来以相同的顺序重新运行测试以进行调试。

答案 1 :(得分:0)

尝试使用此语法click_link('', href: some_path)

答案 2 :(得分:0)

链接可能会被另一个元素(如弹出窗口)所覆盖,或者在加载页面一段时间后由Ajax激活。它很大程度上取决于您使用的页面类型。

作为一般提示,我建议直接使用finder,例如:

  # Note :visible => true, it will throw an error if element is overlapped
  find(:xpath, "//a[.='some existing text']", visible: true).click

  # Another approach
  wait_until(15) { first(:xpath, "//a..", visible: true) }.click