Html 如何使用watirwebdriver获取父元素的索引?

Html 如何使用watirwebdriver获取父元素的索引?,html,ruby,watir,watir-webdriver,Html,Ruby,Watir,Watir Webdriver,我有一个HTMLcode: <div class="A"> <div class="B"> Text1 </div> </div> <div class="A"> <div class="B"> Text2 </div> </div> 当然,如果说“未定义的局部变量或方法‘index’”,这是行不通的。使用webdriver无法获取索引,因为它们与匹配元素的集合相关。

我有一个HTMLcode:

<div class="A">
  <div class="B">
    Text1
  </div>
</div>
<div class="A">
  <div class="B">
    Text2
  </div>
</div>

当然,如果说“未定义的局部变量或方法‘index’”,这是行不通的。

使用webdriver无法获取索引,因为它们与匹配元素的集合相关。您可以尝试将elemetns文本收集为数组,然后获取目标文本的索引

@@ff.divs(:class,'A').collect(&:text.index('Text1'))

请注意,这只适用于简单场景(如您的示例)。如果您需要攻击更复杂的情况,请更新您的示例以匹配实际情况。

如果您试图获取索引作为处理您想要使用的元素的一种方式,并且找到它的最佳方式是基于子元素的某个属性,那么有一种更好的方式

e、 g.如果您的目标是单击围绕div class B的class A实例,其中包含“Text1”,那么请执行此操作

browser.div(:class => 'B', :text => 'Text1').parent.click
这对于您想要的外部容器没有有用属性的情况尤其有用

然而,在上面的示例中,您也可以简单地做到这一点

browser.div(:class => 'A', :text => 'Text1').click  

你想干什么?你真正需要知道什么?你真的需要知道索引或其他什么吗?在这里同意Zeljko的观点。。告诉我们你真正需要做什么,因为“获取索引”在我看来是达到目的的一种手段,如果我们只知道你真正想要实现什么,可能会有更好的方法(例如,见下面的答案)。好吧,我不想点击这个。。我想找到div的索引,就像robertodecurnex的答案一样。单击只是您可以采取的一个操作的示例。真的,这让我们回到对你的问题的最初评论。“为什么?”获取索引有什么意义?这对你有什么好处?你为什么认为这是“我需要的”?因为如果我们对你们正在努力完成的事情有更多的了解,我们可能会向你们展示一个更好的方法
browser.div(:class => 'A', :text => 'Text1').click