CSS等同于XPath插入式分组和索引?
这个问题旨在通过Selenium/Web驱动程序进行测试,但也适用于一般的Web应用程序/开发 XPath有一个非常好的特性,即对给定的XPath进行分组,并结合索引来表示“为给定XPath返回的所有/多个元素提供元素N,指定为“(//someXpath)[N]”,不带引号 我想知道CSS中是否有一个可翻译的等价物。如果不是通过标准CSS,那么Sizzle/jQuery如何?如果不存在,如果将来将这种东西添加为CSS标准会很好。类似于“(someCssSelector):第n种类型(n)”CSS等同于XPath插入式分组和索引?,xpath,css,jquery-selectors,css-selectors,Xpath,Css,Jquery Selectors,Css Selectors,这个问题旨在通过Selenium/Web驱动程序进行测试,但也适用于一般的Web应用程序/开发 XPath有一个非常好的特性,即对给定的XPath进行分组,并结合索引来表示“为给定XPath返回的所有/多个元素提供元素N,指定为“(//someXpath)[N]”,不带引号 我想知道CSS中是否有一个可翻译的等价物。如果不是通过标准CSS,那么Sizzle/jQuery如何?如果不存在,如果将来将这种东西添加为CSS标准会很好。类似于“(someCssSelector):第n种类型(n)” 除此
除此之外,XPath和CSS的另一种选择是更具体地描述DOM树,向树上移动以获得标识元素的唯一性(而不是(someShorterSimplerXpath)[n])。您可以访问jquery集,如数组:
$('selector')[n]
对于相对的/
xpath,可以使用children()
,因此对于像//selector/foo
这样的xpath,可以使用$('selector')。children('foo')
。对于相对的//code>xpath,可以使用查找()
:对于//selector//foo
使用$('selector')。查找('foo'))
。对于。
您可以使用parent()
:对于//选择器/。
使用$('selector')。parent()
使用CSS时,虽然没有父选择器,但有一个类型为n的伪类()。因此,您可以执行selector:n的类型(n)
您可以访问jquery集,如数组:$('selector')[n]
对于相对的/
xpath,可以使用children()
,因此对于像//selector/foo
这样的xpath,可以使用$('selector')。children('foo')
。对于相对的//code>xpath,可以使用查找()
:对于//selector//foo
使用$('selector')。查找('foo'))
。对于。
您可以使用parent()
:对于//选择器/。
使用$('selector')。parent()
在CSS中,虽然没有父选择器,但是有一个nth类型的
伪类()。因此,您可以执行selector:nth类型(n)
:nth-of-type()
可能不会执行您认为它会执行的操作(它是CSS3中最容易被误解的选择器之一)。小心。@BoltClock您的意思是因为它只对同级进行操作?还因为它只对元素类型(header、p、div、li…)进行操作,而没有其他属性。:nth-of-type()
可能不会像您认为的那样进行操作(它是CSS3中最容易被误解的选择器之一).小心。@BoltClock您的意思是因为它只对同级进行操作?还因为它只对元素类型(header、p、div、li…)进行操作,而没有其他属性。目前还不清楚CSS4中的伪类是允许一个复杂选择器列表,还是只允许一个简单选择器列表(有关术语,请参阅)。如果它允许使用复杂选择器,那么它很可能是您所渴望的未来标准:)例如,XPath表达式(//foo/bar[@name])[n]
可以转换为以下CSS4选择器::n个匹配(n个foo>bar[name])
,其中foo>bar[name]
是一个复杂选择器(遵循2011 WD中显示的语法)。但是如果:nth-match()
不接受复杂的选择器,那么您将无法在很长一段时间内使用纯CSS执行此操作。谢谢,这是很有见地的信息。希望:nth-match()将支持复杂选择器。刚刚注意到,您可以在帖子中通过javascript获取css计数。第n个匹配功能可能有助于迭代匹配,与Selenium的getXpathCount和XPath的括号索引方法相同。目前尚不清楚CSS4中的伪类是否允许复杂选择器列表或only一个简单选择器列表(有关术语,请参阅)。如果它允许使用复杂选择器,那么它很可能是您渴望的未来标准:)例如,XPath表达式(//foo/bar[@name])[n]
可以转换为以下CSS4选择器::n个匹配(n个foo>bar[name])
,其中foo>bar[name]
是一个复杂的选择器(遵循2011 WD中显示的语法)。但是如果:nth-match()
不接受复杂选择器,那么在很长一段时间内,您将无法使用纯CSS执行此操作。谢谢,这是很有见地的信息。希望:nth-match()将支持复杂选择器。刚刚注意到,您可以在帖子中通过javascript获取css计数。第n个匹配功能可能有助于迭代匹配,与Selenium的getXpathCount和XPath的括号索引方法相同。