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

时间:2016-12-20 16:14:54

标签: ruby selenium dom capybara

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

.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 Firebug的DOM视图

enter image description here

我试图提出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

这种类型的表单字段出现在很多地方。检测现场的内容将是一个很大的帮助。

任何想法?

1 个答案:

答案 0 :(得分:1)

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

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