0

私はこれを持っています:

<div class="dhx_toolbar_btn def" title="">
<div>Interface</div>
</div>

これを試したとき、Seleniumにそれをクリックさせる方法を考えていました:

//div[@class='dhx_toolbar_btn def' and contains(., 'Interface')]

この:

css=.dhx_toolbar_btn def:contains('Interface')

どちらもまったく機能していないようですが、次のような他の div では機能するようです。

<td class="td_btn_txt">
<div class="btn_sel_text">Billing Interface</div>
</td>

どんな助けでも大歓迎です。ありがとう

**編集**
私もこれらを試しましたが、すべてが機能せず、エラーも返されません:

//div[5]/div/div[5]/div[9]
//*[text()='Interface']
//*[normalize-space(text())='Interface']
//*[contains(text(), 'Interface')]

**編集**
また、これらの最後の4つを試してみると、クリックの代わりにmouseDownを使用すると、想定どおりに動作することに気付きました(マウスがアイテム上にあるように見えますが、クリックしません) 、したがって、なぜmouseDownで意図したことを行うのか疑問に思っていますが、クリックしても何もせず、エラーも返しません。

4

3 に答える 3

1

xpath を試してください:

//div[@class=\"dhx_toolbar_btn def\"]/div

そのxpathは、テキスト「インターフェース」を含むdivになります。クラス「dhx_toolbar_btn」のdiv内に複数のdivがある場合は、

//div[@class=\"dhx_toolbar_btn def\"]/div[text()="Interface"]

また、「Interface」を含む複数の div がある場合は、テキストが静的であると仮定して、Xpath をプログラムで構築し、探している正確なテキストを渡します。

于 2013-03-19T17:00:12.740 に答える
1

Element Locatorの CSS セレクター オプションを使用してみてください

このようなもの

css = "div.dhx_toolbar_btn div"

もちろん、これは完全な DOM がどのように見えるかによって異なります。

于 2013-03-19T15:38:53.820 に答える
0

さて、私が望んでいた方法、または機能させる方法ではありませんが、ちょっとしたことです:

<tr>
<td>waitForElementPresent</td>
<td>//div[@class='dhx_toolbar_btn def' and contains(., 'Interface')]</td>
<td></td>
</tr>
<tr>
<td>mouseDown</td>
<td>//*[text()='Interface']</td>
<td></td>
</tr>
<tr>
<td>mouseOver</td>
<td>//*[normalize-space(text())='Interface']</td>
<td></td>
</tr>
<tr>
<td>mouseDown</td>
<td>//*[text()='Interface']</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[5]/div/div[5]/div[9]</td>
<td></td>
</tr>
<tr>
<td>mouseOut</td>
<td>//div[5]/div/div[5]/div[9]</td>
<td></td>
</tr>

私はより簡単でシンプルな方法を好みますが。

于 2013-03-21T14:06:45.587 に答える