2011-12-29 17 views
1

私はこのHTMLcodeを持っている:Watir Webdriverを使用して親要素のインデックスを取得する方法は?

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

は、だから私は '' ここで、iは、いくつかのテキストを見つけ=のdivクラスのインデックスを見つける必要があります。私はワチールwebdriverをを使用して、今私は、このコードを持っている:

if @ff.div(:class=>'A').div(:text=>'Text1') 
    then [email protected](:class=>'A').index 
end 

もちろん、これは「「未定義のローカル変数やメソッド `インデックス」を言っては動作しませんが。

+1

を行うことができるかもしれませんか?何を本当に知っておく必要がありますか?あなたは本当にインデックスなどを知る必要がありますか? –

+0

Zeljkoと同意してください。本当に必要なことを教えてください。インデックスを取得することは、私が最終的に見る手段であると思われるため、もっと良い方法があるかもしれません(例えば、あなたが本当に達成しようとしていたことがわかっていたら –

答えて

1

webdriverを使用してインデックスを取得する方法はありません。一致する要素のコレクションを基準にしているためです。あなたがしようとすることができますは、配列としてelemetnsテキストを収集し、ターゲットテキストのインデックスを取得します。

これは、単純なシナリオ(例のような)でのみ機能することに注意してください。より複雑なケースを攻撃する必要がある場合は、実際のシナリオに合わせてサンプルを更新してください。

+0

それは私が必要なものです!ありがとう.. – user1116005

1

あなたが作業したい要素に対処する方法としてインデックスを取得しようとしていて、それを見つける最良の方法が子要素のいくつかの属性に基づいている場合は、より良い方法があります。

あなたの目的は、その中に「テキスト1」とのdivクラスBに巻き付けられたクラスAのインスタンスをクリックした場合、あなたが望む外容器は何の役に立つを持っていない場合は、その後の状況のた​​めに特に良いことだこの

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

を行います属性。あなたの例では

しかし上記の、あなたはまた、単に何をしようとするこの

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

これをクリックしたくない...私はdivのインデックスをrobertodecurnexの答えのように探したい。 – user1116005

+0

クリックはあなたが取ることができるアクションの一例に過ぎませんでした。本当にこれがあなたの質問に対する元のコメントに戻ります。 "なぜ?"インデックスを取得するポイントは何ですか?それはあなたのために何をするのですか?なぜこれが「私の必要なもの」だと思いますか?あなたが達成しようとしていることについてもっと知っていれば、その目的のためにあなたにもっと良い手段を示すことができるかもしれないからです –

関連する問題