Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 水豚:找不到包含HTML内容的链接_Ruby_Testing_Cucumber_Capybara - Fatal编程技术网

Ruby 水豚:找不到包含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

给定这样的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>"
当我跟随我的链接时 我已经很长时间没有使用Capbybara了,但是我知道是什么导致了这个问题。那么,在更一般的层面上,正确的方法是什么?这种情况肯定很普遍,对吧


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

我会将强标记移到锚标记之外,或者更好地使用CSS

或者,您可以将id属性指定给链接,并使用它而不是内容。如果你的应用程序支持多种语言,这种方式是最好的

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

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

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

我会将强标记移到锚标记之外,或者更好地使用CSS

或者,您可以将id属性指定给链接,并使用它而不是内容。如果你的应用程序支持多种语言,这种方式是最好的

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

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

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

谢谢!我希望保持结构完整,因为这只是一个简化的示例。通常,样式设置需要在链接中包含一个或多个标记,但链接的文本内容实际上不会受到影响。使用ID属性的想法可能更可行,尽管我不想仅仅为了测试而添加任何标记。我会检查你的选择建议。谢谢!我希望保持结构完整,因为这只是一个简化的示例。通常,样式设置需要在链接中包含一个或多个标记,但链接的文本内容实际上不会受到影响。使用ID属性的想法可能更可行,尽管我不想仅仅为了测试而添加任何标记。我会检查你的建议。