如何检测仅出现在 dom 中的数据?

How do I detect data that only appears in dom?

所以我正在查看一个偶尔无法填写数据的表单字段

.set('Important Label')       #occasionally ignored
.send_keys('Important Label') #occasionally ignored

以下是元素在 html 中的外观,无论字段是否已填充

<input data-bind="textinput: form.name, errorInput: form.hasNameError"
placeholder="Name" class="form-control name-blah-form" type="text">

我唯一能看到数据的地方是 Mozilla 的 DOM 视图 Firebug

我尝试了各种发现 ElementNotFound

find(:xpath, '*//[contains(@value,"Important Label")]') #ElementNotFound
find(:xpath, '*//[contains(value,"Important Label")]')  #ElementNotFound 
find(:xpath, '*//[contains(text(),"Important Label")]') #ElementNotFound
find(:xpath, '*//[@value="Important Label"]')           #ElementNotFound
find(:xpath, '*//[value="Important Label"]')            #ElementNotFound

这种类型的表单域出现在很多地方。检测现场有什么会很有帮助。

有什么想法吗?

填写字段值会更改值 属性 而不是值属性。 HTML 显示属性(页面加载时的值),而不是 属性(当前值)。要匹配 属性,您可以使用字段选择器的 with 选项 - https://github.com/teamcapybara/capybara/blob/master/lib/capybara/selector.rb#L67

find(:field, with: 'Important Label')