2012-09-19 415 views
14

自分の属性にワイルドカードを使用したいと思います。私は数が動的であるため、ワイルドカードでj_idt番号を交換したいSelenium WebDriverの属性にXPathワイルドカードを使用する

//input[@id='activation:j_idt84:voId:1']` 

:たとえば、これは私の定期的なXPathのです。私はこのようなものを探しています:

//input[@id='activation:*:voId:1'] 

私はその問題を解決する方法がわかりません。私のアイデアは可能ですか?

答えて

24

残念ながら、XPathには文字列ワイルドカードはありません。しかし、このようなものをフィルタリングするには、複数のとstarts-with()を使用することができます。

//input[starts-with(@id, 'activation:') and contains(@id, ':voId:1')] 

また、この答えはあまりにも役に立つかもしれません:selenium: Is it possible to use the regexp in selenium locators

+0

を感謝し、このソリューションの作品完全に! –

2

あなたのXPath 2.0で提供されていますmatches機能使用でき使用文字列ワイルドカード:

//input[matches(@id, 'activation:.*:voId:1')] 
+0

この方法は私のコードでは機能しません。 complex857のソリューションが機能します。しかし、ありがとう! –

+2

Selenium [基本となるブラウザへのxpath代理人](http://code.google.com/p/selenium/issues/detail?id=3009)ので、一度ブラウザを実装すれば動作するはずです。 – complex857

関連する問題