2012-02-24 6 views
1

この質問は、一般的なWebアプリケーション/開発にも当てはまりますが、Selenium/Web Driverを介したテストに向けられています。XPathのカッコ内のグループ化と索引付けに相当するCSSはありますか?

XPathには、指定されたXPathをグループ化してインデックス付けと組み合わせて、「(someXpath)[n]」として指定された、指定されたXPathから返されたすべての/ o引用符。

標準的なCSSではなく、Sizzle/jQueryについてはどうでしょうか?存在しなければ、そのようなものがCSSとして追加されるといいでしょう(someCssSelector):nth-​​of-type(n)のようなもの

これ以外のXPathとCSSの別の方法は、DOMツリーの説明に具体的に示すことです。要素を識別する際の一意性を得るためのツリー((someShorterSimplerXpath)[n]とは対照的に)。あなたは配列のようjqueryのセットにアクセスすることができます

+0

CSS4の[':nth-​​match()'](http://www.w3.org/TR/selectors4/#nth-match)擬似クラスが、複雑なセレクタまたは単純なセレクタのリストのみ(用語については[このセクション](http://www.w3.org/TR/selectors4/#structure)を参照)。複雑なセレクタを使用できるようになるなら、それはあなたが後で欲しい将来の標準であるかもしれません:) – BoltClock

+0

例として、XPath式 '(// foo/bar [@name])[n]'は次のCSS4セレクタ: 'foo> bar [name]'が複合セレクタ(2011 WDに示されている構文に従う)である ':n番目の一致(nはfoo> bar [name])'しかし、 ':nth-​​match()'が複雑なセレクタを受け付けない場合、長い間、純粋なCSSでこれを行うことはできません。 – BoltClock

+0

ありがとう、それは洞察力のある情報です。希望:nth-​​match()は複雑なセレクタをサポートします。 – David

答えて

1

$('selector')[n]

相対/ xpathのあなたが$('selector').children('foo')にしてください//selector/fooなどのxpathのようにあなたは、children()を使用することができます。相対パス// xpathの場合、find()//selector//fooの場合は$('selector').find('foo')を使用できます。 ..のためにあなたがparent()を使用することができます。//selector/..使用するため$('selector').parent()

をCSSで、親セレクタが存在しない一方で、nth-of-type擬似クラス(specification here)があります。だから、selector:nth-of-type(n)することができます。

+0

':nth-​​of-type()'はあなたが思っていることをしないかもしれません(CSS3の中で最も誤解を招くセレクタの1つです)。注意してください。 – BoltClock

+0

@BoltClockそれは兄弟にしか作用しないからですか? – beerbajay

+0

これは要素型(header、p、div、li ...)のみで動作し、他のプロパティは一切動作しないためです。 – BoltClock