0

私の質問を準備するために時間を割いていただきありがとうございます。画像の右側にあるテキストで表される特定のノードの子の画像 (cog.png) をマウスオーバーしてからマウスダウンする必要があります。クラスをターゲットにすることはできますが、画像のみをターゲットにする方法がわかりません。

HTML、「オーストラリア」付近の cog.png をターゲットにしたい

<div id="tree" class="">
<ul class="dynatree-container dynatree-no-connector">
    <li class="dynatree-lastsib">
        <span class="dynatree-node dynatree-expanded dynatree-has-children dynatree-lastsib dynatree-exp-el dynatree-ico-e"></span>
        <ul style="">
            <li class="">
                <span class="dynatree-node dynatree-exp-c dynatree-ico-c" style="background-color: transparent;">
                    <span class="dynatree-connector"></span>
                    <img alt="" src="/icn/cog.png"></img>
                    <a class="dynatree-title" title="This option is Active" href="#">
                        Australia
                    </a>
                </span>

Selenium IDE のターゲット コード (これはフル スパンをターゲットにしています。画像 cog.png だけが必要です)

//span[contains(@class,'dynatree-node')  and //img[@src='/icn/cog.png'] and .//text()='Australia']

私は試した

//img[@src='/icn/cog.png']

当然のことながら、それは十分に具体的ではなく、画像の最初のインスタンスをターゲットにしていました

バージョン

  • Firefox 32.0.3
  • セレン IDE: 2.7.0
4

1 に答える 1

0

これは私がダイナツリーをナビゲートするために使用したコードです。最初の項目が子として追加され、残りが子の下または上に追加されたため、より困難になりました。どの時点でアイテムが追加されたかを判断するために「カウント」を作成して追跡しました。

<tr>
    <td>waitForTextPresent</td>
    <td>Australia</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>//span/a[contains(., '${LocationLevel1Ext}')]/preceding::span[@class='dynatree-expander'] [1]</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>//span/a[contains(., '${LocationLevel2Ext}')]/preceding::span[@class='dynatree-expander'] [1]</td>
    <td></td>
</tr>
<tr>
    <td>clickAt</td>
    <td>//span/a[contains(., '${PreviousLocationName}')]/preceding::img[@src='/icn/cog.png'] [1]</td>
    <td></td>
</tr>
<tr>
    <td>waitForTextPresent</td>
    <td>Add before this node</td>
    <td></td>
</tr>
<tr>
    <td>mouseOver</td>
    <td>//span[contains(text(), 'Add before this node')]</td>
    <td></td>
</tr>
<tr>
    <td>mouseDown</td>
    <td>//span[contains(text(), 'Add before this node')]</td>
    <td></td>
</tr>
于 2014-11-29T10:28:06.523 に答える