我有以下 html :
<textarea class="input-validation-error form-control" cols="20"
data-val="true" data-val-regex="Invalid input"
data-val-regex-pattern="([a-zA-Z][0-9]{11}[a-zA-Z0-9][^\S\r\n]*\r\n)*[a-zA-Z][0-9]{11}[a-zA-Z0-9][\s]*"
data-val-required="Please enter valid values"
id="val" name="values" rows="9"></textarea>
我正在尝试断言element
进行验证:
expect(page).to have_css(
"textarea[data-val-regex-pattern=([a-zA-Z][0-9]{11}[a-zA-Z0-9][^\S\r\n]*\r\n)*[a-zA-Z][0-9]{11}[a-zA-Z0-9][\s]*]")
但我一直收到invalid selector
错误。我已经尝试转义特殊字符,也包括单引号和双引号中的整个值。应该断言什么?
答案 0 :(得分:1)
你在这里遇到的问题是你必须为ruby字符串转义并转义为CSS。引起问题的角色是\字符,最终需要双重转义,成为\\\\
expect(page).to have_css('textarea[data-val-regex-pattern="([a-zA-Z][0-9]{11}[a-zA-Z0-9][^\\\\S\\\\r\\\\n]*\\\\r\\\\n)*[a-zA-Z][0-9]{11}[a-zA-Z0-9][\\\\s]*"]')
答案 1 :(得分:0)
尝试使用:
expect(page).to have_css("textarea[data-val-regex-pattern^='([a-zA-Z]'])