2016-06-29 15 views
0

を見出し検証これは私がGebに使用できる"//div[@class='city']/h4[text()='Newyork']"は、CSSセレクタ内のテキスト

xpath俺のXPathのですが、私はCSSでの類似の発現またはより良いのGroovyっぽい、Gebishロケータを書きたいです。

私は

.city>h4:'Newyork'

.city>h4:contains('Newyork')

を試してみましたが、どれも働きました。

Iはhttps://sqa.stackexchange.com/questions/362/a-way-to-match-on-text-using-css-locators

+0

リンクされた質問は、Seleniumについてです。普通のCSSではありません。プレーンCSSはテキストノードを扱うことができません。 ':contains'の提案がありましたが、それもテキストを扱うことができませんでした。私はあなたが運がなくなり、h4にユニークなクラスや何かを与えることに頼らざるを得なくなるのではないかと心配しています。 –

+0

それは、私がよく知らないGebについて話していると言いました。おそらくそこに解決策があります。 –

答えて

0

ゲブはさらに元素のマップを渡すことによって、CSSセレクタを使用して、マッチした要素をダウンフィルタリングする能力を有するが、そのセレクタと一緒にそのメソッドに属性を参照しています。また、a special attribute for matching text of a nodeも紹介しています。あなたのセレクタは次のようになります。

$('div.city > h4', text: 'Newyork') 

が、これはすべてのマッチした要素のテキストを取得し、与えられた値に対してそれをチェックすることで動作することに注意してください、それはそれは、JVM側で作業をしないブラウザであり、これは、あなたのcssセレクタをできるだけ特定のものにし、可能な限り少ない要素にマッチさせたい場合、セレクタが非常に遅くなることを意味します。