2016-08-18 7 views
0

あなたは、このようにページのソースを検索することができます方法を知っている:私が持っている1ページを訪問しているためwatir-webdriverに「ワイルドカードタグ」がありますか?

browser.wildcard(:text => /foo/) 

が、私はこの機能を探しています:

browser.div(:text => /foo/) 

がどのようにこのような何かを行うことができます

<tag1>foo</tag1> 

が、2ページ目は

を持っています210

であり、両方のページの他の場所でfooが発生しないことは確実です。

+1

を、 ''と '' 何ですか? – orde

+0

「​​」と「」ですが、「要素」を必要としない回避策が見つかりました。 – Forwarding

+0

@ orde、好奇心から、どうして尋ねますか? – Forwarding

答えて

3

要素は関係なく、タグ名の一致するすべての要素を見つける:

browser.element(text: /foo/)

ジャスティンは、コメントに大きなポイントになります。 #elementと正規表現の値をペアにすると、html要素が返されます。

あなたはそれを参照する最後のタグ(これはおそらく法外非パフォーマンスオプションであることに注意してください)したい場合:

browser.element(text: /foo/, index: -1)

をネストされたスパンに問題がない場合、これは次のようになりますわずかに速くオプション:一般的に

b.element(text: /foo/, tag_name: /span|td/)

、正規表現を使用しないようにはるかに優れているが、あなたが*にそれらを使用する必要はありませんときマッチャー。

+1

私はあなたがこれに注意する必要があると思う。 "foo"がページ上にある場合、常にテキストを含む最初の要素である 'html'要素を返します。タグのテキストが正確に "foo"であることがわかっていると、 'browser.element(text: 'foo')'が安全になります。 –

0

xpathはどうですか?

browser.element(xpath: "//tag1[contains(text(),'foo')]") 

あなたも、あなたができるページ上の唯一のTAG1持ちの場合:好奇心のうち

browser.element(xpath: "//tag1") 
関連する問題