2

コードは次のとおりです。

<li class="abc">
    <div class="abc">
         <input type="checkbox">
    </div>

    <div class="xyz">
        <div class="headline">Mongo like candy</div>
    <div>
</li>

<li class="abc">
    <div class="abc">
        <input type="checkbox">
    </div>

    <div class="xyz">
        <div class="headline">Candygram for mongo</div>
    <div>
</li>

Xpathチャレンジ。「Mongolikecandy」という見出しが含まれているliのチェックボックスを見つけて、Seleniumを使用して選択できるようにします。つまり、ここからチェックボックスをどのように見つけますか。

li//div[@class='abc']//input[@type='checkbox']

ただし、同じ親ノード内の別の属性で修飾します。

li//div[@headline][contains(text(),"Mongo like candy")]
4

3 に答える 3

1

何かのようなもの

li [div [@ class ='xyz'] // div [@ class ='headline' and contains(text()、 "Mongo like candy"))]] // input [@ type ='checkbox']

かっこをめちゃくちゃにしない限り。(つまり、を選択するだけliでなく、適切なものを選択しますli)。

于 2013-01-02T19:05:03.633 に答える
1

基本的な考え方は、最終パスを述語で修飾することです。

li[/*predicate here*/]//div[@class='abc']//input[@type='checkbox']

述語は、必要なliの条件を表します。

.//div[@class='headline' and contains(text(), "Mongo like candy")]

それらを組み合わせると、次のようになります。

li[.//div[@class='headline' and contains(text(), "Mongo like candy")]]//div[@class='abc']//input[@type='checkbox']
于 2013-01-02T19:32:12.010 に答える
0

これでも機能します:

//li[1]/div[1]/input[@type='checkbox']

ページにさらにdivタグが導入されると、失敗する可能性があります。

于 2015-02-17T21:34:32.813 に答える