2011-08-18 57 views
7

我在默认配置下使用Capybara 1.0.0。水豚click_link有时不起作用

click_link“一些现有文本”# - 有时 - 不起作用。奇怪的。

find_link“一些现有的文字”#总是工作

这可能是一个计时问题;或者可能不是因为find_link非常好。

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

之前,我完全得到了水豚的来源。你认为那是错误的?

问候

+0

prolly问题是出在你定位与XPath或CSS选择元素的方式吗? –

回答

0

每当我得到间歇性问题,我测试的第一件事情我查一个是他们为In。

运行取决于你如何有Rspec的设置序列,它可能是随机化每次运行套件时运行规格的顺序。这意味着有时候一切都过去了,其他时间不是。

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

0

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

0

该链接可能与另一个元素(如弹出窗口)过度匹配,或者在加载页面一段时间后由Ajax激活。这很大程度上取决于您使用的是哪种页面。

作为一般的提示,我会建议直接使用取景器,如:

# 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