2017-05-16 9 views
3

h2またはh3タグのいずれかを持つSelenium Webdriverを使用して要素を検索したいとします。タグセレクタでCSSセレクタに正規表現を使用することはできますか?

上記の要件には一般的なCSSセレクタを使用できますか?

[tag^='h']または[att^=str]と類似していますか?

+1

1つの方法= "h2、h3"。それが正しい場合は確信しています。 – hemanik

+0

あなたのアプローチは正しい – kushal

+1

@hemanik:あなたが望むのはh2またはh3要素ですが、h1、h2、h3、h4、h5、h6と一致するので、ちょうど^ hの部分文字列の一致は*間違っていますヘッダーとhrも言及してください。言い換えれば、はい、 'css = h2、h3'は正しいですが、もっと重要なのは、あなたが何か他のものを選ぶ理由はわかりません。これは、自分のために大胆になっているようです。 – BoltClock

答えて

1

属性の場合は可能です。しかし、要素に対しては、可能な値をカンマ区切りにすることができます。 W3 CSS Selectors

Selector   Example    Description                    CSS 
element1,element2 h1,h2    Selects every <ul> element that are preceded by a <p> element        3 
[attribute~=value] [title~=flower]  Selects all elements with a title attribute containing the word "flower"     2 
[attribute|=value] [lang|=en]   Selects all elements with a lang attribute value starting with "en"      2 
[attribute^=value] a[href^="https"]  Selects every <a> element whose href attribute value begins with "https"     3 
[attribute$=value] a[href$=".pdf"]  Selects every <a> element whose href attribute value ends with ".pdf"     3 
[attribute*=value] a[href*="w3schools"] Selects every <a> element whose href attribute value contains the substring "w3schools" 3 
2

セレクタのカンマ区切りリストを使用します。あなたの場合はh2, h3セレクタを使用してください。詳細については、W3C Recommendationを参照してください。

1

それはあなたにも"h"手紙を開始することにより、両方の要素を一致することXPathを使用する場合があります質問に直接答えではないのですが、などの追加オプション:この `可能性があり、CSSを行うには

//*[starts-with(name(), 'h')] 
+0

代替ソリューションは@Anderssonありがとうございます。 – hemanik

+0

しかしこれはまた、exで始まるhで始まる他のすべての要素をフェッチします。 HTML、HEAD、HEADERなど。 – kushal

+0

はい、正確です。これが最も一般的な例です。 OPは述語を組み合わせて、より具体的な「XPath」を作り、必要なノードだけをフェッチすることができる – Andersson

関連する問題