使用相同的 class 在 Watir 中输入文本

Enter text in input in Watir with same class

我正在尝试在输入字段中输入文本,但无法成功运行。我有两个输入,如下所示:

<div class"outerParentClass">
    <div class="classLabel">From</div>
        <div class="classA classB classD">
            <div class="classE">
               <div class="classText"> TEXT HERE </div>
               <input class="classInputA classInoutB" type="text">
           </div>
       </div>
   </div>
   <div class="classLabel">To</div>
        <div class="classA classB classD">
            <div class="classE">
               <div class="classText"> DIFFERENT TEXT HERE </div>
               <input class="classInputA classInoutB" type="text">
           </div>
       </div>
   </div>
</div>

两个输入的格式与上面完全相同。没有 ID,并且两者具有相同的 类。我很难在其中输入文本,甚至无法正确找到它们。

当我这样做时:

browser.text_field(:class => "classInputA").size

它returns 20

当我这样做时:

browser.text_field(:class => "classInputA")

它returns:

#<Watir::TextField:0x..fbccafb7ed2e9b85e located=false selector={:class=>"classInputA", :tag_name=>"input"}>

不确定如何找到这些输入。有什么建议吗?

字段旁边的文本提供了字段的标签和上下文。由于它可能是独一无二的,您可以使用它来识别元素。

为此,找到包含标签文本的 div。然后导航到包含文本字段的相邻 div

browser.div(text: 'From', class: 'classLabel') # label of interest
  .element(xpath: './following-sibling::div[1]') # adjacent div containing text field
  .text_field # the text field

请注意,在 Watir 的下一个版本中,.element(xpath: './following-sibling::div[1]') 将被替换为 .following-sibling