[英]How to get placeholder value using assert_selector in rails
如何使用 rails 中的assert_selector
从输入栏中获取占位符值?
<input placeholder="hello world" value="<%= params[:query] %>" required>
我想检查占位符是否包含hello
虽然 Lam Phan 的回答确实回答了这个问题,但从可读性/可理解性的角度来看,当 CSS 具有您需要的东西时诉诸于编写 XPath 查询通常不是最好的主意。
CSS 有许多属性选择器,对测试最有用的通常是
您可以在https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors 上查看完整集
在这种情况下,这意味着您可以执行以下任何操作
assert_selector('input[placeholder*="hello"]') # contains 'hello'
assert_selector('input[placeholder~="hello"]') # contains the word 'hello'
assert_selector('input[placeholder^="hello"]') # starts with 'hello'
另一种选择是利用 Capybara :field 选择器具有placeholder
过滤器的事实 - https://github.com/teamcapybara/capybara/blob/master/lib/capybara/selector.rb#L34 - 它采用正则表达式- 所以你可以这样做
assert_field(placeholder: /hello/)
这与
assert_selector(:field, placeholder: /hello/)
您可以使用xpath
并验证是否存在占位符contains
“hello”的input
元素
assert_selector(:xpath, './/input[contains(@placeholder,"hello")]')
如果你想准确地检查一个带有 id 的输入
assert_selector(:xpath, './/input[@id="input_id"][contains(@placeholder,"hello")]')
我不确定是否有一个辅助方法可以检查正则表达式,例如~= /.*hello.*/
,如果你想这样做,你还有另一个选择
placeholder = find('#input_id')['placeholder'] # or use :xpath
assert_match /.*hello.*/, placeholder
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.