如何使用Watir Webdriver获取父元素的索引?

时间:2011-12-29 10:40:32

标签: html ruby watir watir-webdriver

我有这个HTMLcode:

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

所以我需要找到div class ='A'的索引,其中我找到了一些文本。我使用Watir Webdriver,现在我有了这段代码:

if @ff.div(:class=>'A').div(:text=>'Text1')
  then ind=@ff.div(:class=>'A').index
end

但当然这不能说'未定义的局部变量或方法`索引''。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

如果您尝试将索引作为一种方法来处理您想要使用的元素,并且找到它的最佳方法是基于子元素的某些属性,那么有一种更好的方法。

e.g。如果您的目标是单击包含在其中包含“Text1”的div类B的A类实例,则执行此操作

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

这对于您想要的外部容器没有有用属性的情况尤其有用。

在上面的示例中,您也可以简单地执行此操作

browser.div(:class => 'A', :text => 'Text1').click  
相关问题