2016-11-21 3 views
0

特定のチェックボックスがチェックされていることを確認するためのXpathクエリを書く方法に関するガイダンスを探していますdivはチェックボックスです)。私がしようとしたのは、テキスト "Evaluations"を含む対応するラベルのチェックボックスdivにクラス "checked"が含まれていることを確認することです。ここ要素のラベルに特定のテキストが含まれている場合にのみ、チェックボックスをチェックするSelenium IDE/Xpathがチェックされます

<div class="panel-body"> 
    <div class="checkradios-checkbox checkradios access icon-checkradios-checkmark checked"> 
     <input id="access_conferences" class="checkradios access" name="access_conferences" value="true" checked="" type="checkbox"> 
    </div> 

    <label for="access_conferences">Conferences</label> 
    <br> 

    <div class="checkradios-checkbox checkradios access icon-checkradios-checkmark checked"> 
     <input id="access_evaluations_viewing" class="checkradios access" name="access_evaluations_viewing" value="true" checked="" type="checkbox"> 
    </div> 

    <label for="access_evaluations_viewing">Evaluations - Viewing</label> 
    <br> 
</div> 

そして、私のXPathは次のとおりです:ここに私のHTMLである//label[@for="access_evaluations_viewing"]/preceding::div[@class="checkradios-checkbox checkradios access icon-checkradios-checkmark checked"]

そのボックスが私のXPathは他の要素をつかんれる私に指示され、チェックされていない場合でも、問題は私のテストケースを渡しています。パネルボディdiv内の他のチェックボックスのいくつかもチェックされるので、私のXpathはdivのラベルに関係なく、 "checked"のクラスで次の先行divをチェックしています含まれています。

編集:私が提案したように、私はラベルの前にdivを参照しようとしました。これを行う際の問題は、パネル本体のすべてのボックスが必ずチェックされるわけではないということです。私は、「評価」に関連付けられているものがチェックされていることを確認する必要があります。 「評価」以外のボックスの1つ以上がチェックされていないと、ラベルの上のdivの参照が失敗します。これは私の改訂のXpathである:

//label[@for="access_evaluations_viewing"]/preceding-sibling::div[contains(@class, "unchecked")]

(@class、「確認」)が含まを確認し、未チェックボックスの両方に合格するので、私は否定的な比較を行うことに切り替えます。

+0

他の要素も= "access_evaluations_viewing" '属性は'持っていますか? – Andersson

+0

@Andersson私が選んでいる他の2つの要素は、同様のラベル「access_evaluations_forms」と「access_evaluations_delivery」を持っています。 – Ben

+0

「XPath」ではなく、あなたのコードのロジックです。私が使用しているコードを表示する – Andersson

答えて

0

あなたが"Evaluations"テキストが含まれているラベルと一致する必要がある場合は、

//label[@for="access_evaluations_viewing"][contains(text(), "Evaluations")]/preceding::div[@class="checkradios-checkbox checkradios access icon-checkradios-checkmark checked"] 
+0

これを試してみましたが、必要なボックスがチェックされていないときにテストはまだパスしています。 – Ben

0

を試してみてください。これらの4つの要素は兄弟であるので、あなたはラベルで、あなたは、チェックボックスの要素を取得するために、上記の本部に行かなければならないとき。

は、このXPathを試してみてください:

//div[@class='panel-body']/label[contains(.,'Evaluations')]/preceding-sibling::div[1] 
+0

この問題は、要素をクリックするだけで問題になります。私がする必要があるのは、チェックボックスが存在するかどうかを確認するか、チェックされていないボックスが存在しないことを確認することです。パネル本体の他のチェックボックスの一部がチェックされていない可能性があります。これは誤った結果を引き起こします。 – Ben

関連する問題