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

How to find a field using placeholder text in Watir?

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

我试过使用 div,但它总能找到第一个搜索字段。 有人对如何找到第二个对象或使用唯一的占位符文本 "Search..." 有什么建议吗?

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 - 瓦蒂尔:

@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)"

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

@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)"