2017-04-13 10 views
0

ここでtest1を検索しようとしていますが、できません。誰かが私に間違っていることを教えてもらえますか?Webdriverでの要素の検索

<button class="btn toggle-tab active" data-filter="test1">test1</button> 
<button class="btn toggle-tab" data-filter="test2">test2</button> 
<button class="btn toggle-tab" data-filter="test3">test3</button> 
<button class="btn toggle-tab" data-filter="test4">test4</button 

私は、IS-しようとしているものを

.//*[text()='test1'] 

.//title[text()='test1'] 

.//data-filter[text()="test1"] 
+0

他のフレーム内のボタンですか? –

+0

見つからないと言ったら、例外メッセージはありますか? XPathを読んで、それらがどのように形成されているのか、少し時間を費やすべきです。あなたはそれらを間違って使っていますが、ここではすべてを説明するためにコメントの範囲を超えています。 – JeffC

+0

はい、ボタンはiframeの内側にあります。正しいノードに移動するにはどうすればよいですか? – arm

答えて

1
"//button[contains(.,'test1')]" 

あり、他の方法がありますが、私は(=)と等しいの上に含まれていることを好むと含まれている中で、私が好みます ""オーバー「のテキスト()」あなたはXPathのタグを含めることができますので、

あなたが効果的に、テキスト「test1の」

この質問は以上のXPathに関連している含まれている最初のタグ名「ボタン」を探していますあなたの将来の投稿を参照してください。 XPathはlinktextを見つけるため

+0

"//button[contains(.,'test1 ')]"は動作していません:( – arm

+0

少なくとも私のコードを見せてください。 –

0

がある - =テキスト()[ //ボタン - //とHtmlTagここでは、あなたの場合は、[テキスト()= 'linktext']

は、XPathはになります'test1']

0

XPathを使用して要素を特定する代わりに、CSSセレクタを使用してみてください。 test1のCSSセレクタはボタン[class $ = 'active']になります。 最悪の場合のシナリオでは、elements.xpathの検索が一般的に好まれる場合は、id、CSSセレクタ、またはクラス名を使用する方が良いでしょう。幸いにも、私はほんのわずかのケースに遭遇しました。