我的页面应该包含一个看起来像<a href="/desired_path/1">Click to go</a>
的链接。
如何使用assert_select测试它?我想检查是否存在带有href="/desired_path/1"
的a
标记。如何测试标签的属性?
是否有任何资源可以解释如何使用assert_select?我阅读了指南和API文档,但没有弄清楚。有没有推荐的更好的方法来做到这一点?
我正在使用Rails 3并使用内置的测试框架。
谢谢.
我的页面应该包含一个看起来像<a href="/desired_path/1">Click to go</a>
的链接。
如何使用assert_select测试它?我想检查是否存在带有href="/desired_path/1"
的a
标记。如何测试标签的属性?
是否有任何资源可以解释如何使用assert_select?我阅读了指南和API文档,但没有弄清楚。有没有推荐的更好的方法来做到这一点?
我正在使用Rails 3并使用内置的测试框架。
谢谢.
7条答案
按热度按时间webghufk1#
在assert_select中,您还可以对属性值使用问号,然后在后面跟一个要匹配的字符串。
assert_select "a[href=?]", "/desired_path/1"
还有另一种更友好的方法来使用assert_select,特别是当你想匹配部分字符串或正则表达式模式时:
assert_select "a", :href => /acebook\.com\/share/
2vuwiymt2#
下面是如何使用
assert_select
Assert链接的一些内容。第二个参数可以是String或Regexp,用于测试href属性:对于其他可以使用
assert_select
的方式,这里是从Rails actionpack 3.2.15文档中提取的示例(参见文件actionpack-3.2.15/lib/action_dispatch/testing/assertions/selector.rb
):uttx8gqw3#
你可以将任何CSS选择器传递给assert_select。因此,要测试标记的属性,可以使用
[attrname=attrvalue]
:7jmck4yq4#
这个问题具体地问:“你如何测试[一个元素]的属性?”
这里的其他答案使用
assert_select
的方式在当前的Rails / MiniTest中不再起作用。根据这个issue,关于属性内容的Assert现在使用这个更Xpath-y的“match”语法:ffdz8vbo5#
对于任何使用来自Rails 4.1并升级到Rails 4.2的assert_select的人。
在4.1中,这是有效的:
在4.2中,这给出了一个错误:“沮丧:由于css选择器无效,Assert未运行。在“[:equal,“"/my_results""不”“之后出现意外”(“
我改变了语法,它的工作!:
上面的回答对我有帮助,谢谢:)
tktrz96b6#
wrrgggsh7#
rails (7.0.8), selenium-webdriver (4.12.0), capybara (3.39.2)
如果你正在向I18n传递变量:
regulat string no I18n: