Ruby 水豚:找不到包含HTML内容的链接
给定这样的HTML结构Ruby 水豚:找不到包含HTML内容的链接,ruby,testing,cucumber,capybara,Ruby,Testing,Cucumber,Capybara,给定这样的HTML结构 <a href="…"><strong>My Link</strong></a> 使用默认webstep When /^(?:|I )follow "([^"]*)"$/ do |link| click_link(link) end 虽然这样做有效: When I follow "<strong>My Link</strong>" 当我跟随我的链接时 我已经很长时间没有使用Capbybar
<a href="…"><strong>My Link</strong></a>
使用默认webstep
When /^(?:|I )follow "([^"]*)"$/ do |link|
click_link(link)
end
虽然这样做有效:
When I follow "<strong>My Link</strong>"
当我跟随我的链接时
我已经很长时间没有使用Capbybara了,但是我知道是什么导致了这个问题。那么,在更一般的层面上,正确的方法是什么?这种情况肯定很普遍,对吧
任何关于黄瓜滥用的想法和一般想法都非常欢迎 我会将强标记移到锚标记之外,或者更好地使用CSS 或者,您可以将id属性指定给链接,并使用它而不是内容。如果你的应用程序支持多种语言,这种方式是最好的 否则,您必须为这种特殊情况编写某种xpath选择器:
find(:xpath, "//a[contains(//text(), \"#{locator}\")]").click
没有测试,只是一个想法。我会将强标记移到锚标记之外,或者更好地使用CSS 或者,您可以将id属性指定给链接,并使用它而不是内容。如果你的应用程序支持多种语言,这种方式是最好的 否则,您必须为这种特殊情况编写某种xpath选择器:
find(:xpath, "//a[contains(//text(), \"#{locator}\")]").click
没有测试,只是一个想法。谢谢!我希望保持结构完整,因为这只是一个简化的示例。通常,样式设置需要在链接中包含一个或多个标记,但链接的文本内容实际上不会受到影响。使用ID属性的想法可能更可行,尽管我不想仅仅为了测试而添加任何标记。我会检查你的选择建议。谢谢!我希望保持结构完整,因为这只是一个简化的示例。通常,样式设置需要在链接中包含一个或多个标记,但链接的文本内容实际上不会受到影响。使用ID属性的想法可能更可行,尽管我不想仅仅为了测试而添加任何标记。我会检查你的建议。