Capybara:未找到HTML内容的链接

时间:2011-03-30 20:50:05

标签: ruby testing cucumber capybara

给出像这样的HTML结构

<a href="…"><strong>My Link</strong></a>

没有被Capybara通过黄瓜步骤抓住

When I follow "My Link"

使用默认的webstep

When /^(?:|I )follow "([^"]*)"$/ do |link|
  click_link(link)
end

虽然这有效:

When I follow "<strong>My Link</strong>"

我没有长时间使用Capbybara,但我可以看到导致问题的原因。所以,在更一般的层面上 - 正确的方法是什么?当然这个案子必须非常普遍,对吗?

关于黄瓜滥用的任何想法和一般思考都非常受欢迎!

1 个答案:

答案 0 :(得分:1)

我会在锚标记之外移动强标记,或者更好地使用CSS。

或者您可以为链接分配id属性并使用它而不是内容。如果您的应用支持多种语言,这种方式最佳。

否则你必须为这种特殊情况编写某种xpath选择器:

find(:xpath, "//a[contains(//text(), \"#{locator}\")]").click

没有经过测试,只是一个想法。