css选择器选择第N个匹配元素,像jquery的eq一样

css选择器选择第N个匹配元素,像jquery的eq一样

问题描述:

我在使用python的pyppeteer时,click方法需要用到css选择器。但是一直没找到好的办法。举例元素结构如下:

<div class='aaa'>
    <div class='cd'>1</div>
    <div class='cd'>2</div>
    <div class='cd'>3</div>
</div>

<div class='aaa'>
    <div class='cd'>4</div>
    <div class='cd'>5</div>
    <div class='cd'>6</div>
    <div class='cd'>7</div>
<.div>

<div class='aaa'>
    <div class='cd'>8</div>
</div>

我看了很多资料都说用nth-child() ,但是完全匹配不出来。有没有办法直接按1、2、3、4、5、6、7、8的顺序定位,例如在jquery中,.cd:eq(4)就直接对应

4

img


先把这错误改改
:nth-child(n) 可以的,好好看看哪里写错了

问题已经解决,谢谢各位的热心解答,思路确实是用nth-child从外层开始一层层往里推。
嘿!小老头和在下月亮有何贵干 两位老师的思路都是对的
但是我在爬取网页时,实际情况比例子会复杂得多,自己没法一层层推。
最后我采取的方法是,利用chrom浏览器,在开发者工具里,直接右键我所需要的元素,复制css selector,多复制几个,然后根据这几个来找到我所需要的css selector的规律

nth-child只能在同一层匹配,也就是匹配nth-child(1),你每个aaa底下的第1个cd都会被匹配,所以可以用nth-child先匹配第几个aaa再匹配第几个cd

多加几个类名就行了,css选择器也不建议写nth-child,最好直接加类名写样式