特定のチェックボックスがチェックされていることを確認するための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、「確認」)が含まを確認し、未チェックボックスの両方に合格するので、私は否定的な比較を行うことに切り替えます。
他の要素も= "access_evaluations_viewing" '属性は'持っていますか? – Andersson
@Andersson私が選んでいる他の2つの要素は、同様のラベル「access_evaluations_forms」と「access_evaluations_delivery」を持っています。 – Ben
「XPath」ではなく、あなたのコードのロジックです。私が使用しているコードを表示する – Andersson