我正在使用Capybara 1.0.0默认配置。
click_link“一些现有文字”# - sometimes--不起作用。怪异。
find_link“一些现有文字”#always always
这可能是一个时间问题;或许不是因为find_link工作得非常好。
我已经通过save_and_open_page检查了生成的输出文件,也没问题。此外,我增加了等待时间等。但是,两者都没有帮助。
在我完全转向Capybara之前。你认为这出了什么问题?
此致
答案 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