如何填充输入字段,该输入字段是位于具有给定文本的元素旁边的元素的子元素

时间:2014-08-12 00:56:19

标签: ruby-on-rails rspec capybara integration-testing

在水豚测试中,我需要填写一个没有唯一id或class属性的文本字段。 文本字段(本例中称为标题的字段)可以出现在页面的任何位置。我们唯一知道的是文本字段包含在一个div中,这个div紧跟在一个h3标签之后,该标签的内容为“Title”

<h3>Title</h3>
<div class="input-row clear">
  <input id="ember5046" class="ember-view ember-text-field" type="text">
</div>
<h3>Work Location</h3>
<div class="input-row clear">
  <input id="ember5048" class="ember-view ember-text-field" type="text">
</div>

我该怎么做?

我们不允许使用xpath(公司政策)

我们不允许像所有(“输入”)[0]

那样进行基于索引的选择器

1 个答案:

答案 0 :(得分:0)

我认为应该可以使用css相邻兄弟组合选择器。类似的东西:

h3[text=Title] + div

这为您提供了匹配+之后的事物的下一个元素。如果您希望匹配的所有内容都可以使用~运算符。这些兄弟选择器只能帮助您在某个节点之后查找内容。据我所知,倒退是不可能的。