如何在Watir中使用占位符文本查找字段?

时间:2015-06-17 15:54:35

标签: ruby watir

我有两个搜索字段,我想找到第二个设置一些文字。

我尝试过使用div,但总能找到第一个搜索字段。 有没有人建议如何找到第二个对象或使用唯一的占位符文本“搜索...”?

HTML:

input type="text" name="searchString" id="searchString" projects="" for="" placeholder="Search" class="form-control"
input type="text" name="searchString" id="searchString" placeholder="Search..." class="form-control"

Ruby - Watir:

@b.link(:text => "http://ml-test.mytest.com/Client/Profile/ab295b41-2c5e-4100-bdee-e757405238bb").click
@b.text_field{div(:class => "col-sm-4 col-md-3", :placeholder => "Search...")}.set "Automation (Test)"

1 个答案:

答案 0 :(得分:2)

看起来问题可能只是代码中的拼写错误。请注意:

@b.text_field{div(:class => "col-sm-4 col-md-3", :placeholder => "Search...")}.set "Automation (Test)"

{}看到的某个块正在传递给text_field方法。 text_field方法对块没有任何作用,因此代码实际上就是这样做:

@b.text_field.set "Automation (Test)"

由于没有向文本字段提供定位器,它将在页面上输入第一个文本字段。

要根据占位符属性(或任何其他定位器)找到文本字段,需要将其作为参数而不是块传递:

@b.text_field(:placeholder => "Search...").set "Automation (Test)"

你也包括了一个div。假设它是一个需要找到文本字段的祖先元素,它应该是:

@b.div(:class => "col-sm-4 col-md-3").text_field(:placeholder => "Search...").set "Automation (Test)"