38

webDriver で xpath を使用して正確なテキストを検索することに関して少し助けが必要です。

次のようなhtmlがあるとします..

<html><body>
  <table>
    <tr>
      <td><button>abcd</button></td>
      <td><button>abc</button></td>
    </tr>
  </table>
</body></html>

今、ボタン「abc」をクリックしたい

私はxpathを使用しまし//button[contains(text(),'abc')]たが、テキスト「abc」も含まれているため、ボタン「abcd」で常に実行されます。この点で、テキストを含む代わりに正確なテキストを検索できる述語またはその他の手順が必要です。

//button[matches(text(),'abc')]//button[matches($string,'abc')]、なども試しましたが//button[Text='abc')]//button[.='abc')]どれも「abc」ボタンを識別するのにうまくいきませんでした。

バージョンを認識していないため、xpath バージョンに問題があるかどうかはわかりません。しかし、私はJava 1.6 JDKを使用しています。

私の正確なシナリオは示されている例ではありませんが、同様のロジックを適用する必要があります。

したがって、どんな助けや提案も大歓迎です。

4

6 に答える 6

50

次の xpath を使用します//button[text()='abc']。関数について言及text()しましたが、構文が正しいかどうかはわかりません。また、使用しようとしましたcontains()-部分的なテキストを検索し、WebDriver が最初に見つかった要素を取得します。私はあなたの場合は<button>abcd</button>ボタンです

于 2013-11-01T08:01:50.357 に答える
0

含むのではなく、ends-with を試してください。ボタンに一意の属性がない場合は、親階層も追加できます。//table/tr/td[1] のように。

于 2013-11-01T05:20:23.633 に答える