这是一些示例代码以及我要做的事情:
<dl id="parentId">
<dt>
<a someattr="whatIwant"/>
</dt>
<dt>
<a someattr="whatIwantNextTime"/>
</dt>
</dl
我试图用someattr =“whatIwant”选择一个元素。这是我目前的cssselector:
"dl[id='parentId']>a[someattr='whatIwant']"
以及:
"dl[id='parentId']>dt>a[someattr='whatIwant']"
不幸的是,这些都不起作用;我似乎正在正确地遵循w3schools模板,但是当我尝试运行时,我得到的元素无法找到异常,或者如果我添加'&gt; dt&gt;',则会出现非法的字符串异常。有没有人对如何做到这一点有任何见解?
感谢。
答案 0 :(得分:2)
编辑:您正在使用直接后代选择器策略(>
),这仅在元素是直接子项时才有效。如果你想要一个后代,请使用()
dl#parentId a[someattr='whatIwant']
此外,假设您的whatIwant
是唯一的,那么此选择器将完美运行..
更进一步,你可以这样做:
dl#parentId > td:nth-child(X) > a
其中X
为1,2,3(您想要的<dt />
的索引。
如果要指定CSS选择器,还要确保使用By.cssSelector
策略,而不是其他任何内容。
答案 1 :(得分:0)
显然我没有做足够的研究,因为我在发布后5分钟才发现这一点。后代选择器''完美地运作,即:
"dl[id='parentId'] a[someattr='whatIwant']"