我正在使用Python Selenium通过使用nth-child(n)来定位元素。
下面是我的html代码:
<div id="iopop" style="">
<div style="" class="">
<div id="iopoph" class="animated zoomIn" style=" ">
<span style="" class="gs_hover"></span>
<b class="in">FALAFEL</b>
<a iid="128-73" class="itemsub lowend" price="2.99" name="FALAFEL (6)" style="">
<b class="in">(6)</b>
<b class="is"></b>
<b class="ip">2.99</b>
<b class="iq"></b></a>
<a iid="128-74" class="itemsub lowend" price="4.99" name="FALAFEL (12)" style="">
<b class="in">(12)</b>
<b class="is"></b>
<b class="ip">4.99</b>
<b class="iq"></b>
</a>
<b class="is"></b>
<b class="ip"></b>
<b class="iq"></b>
</div>
</div>
</div>
现在我想通过使用nth-child(n)找到第一个a标签,所以我尝试了:
driver.find_element_by_css_selector('div#iopoph a:nth-child(2)').click()
但是有错误说:
NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"div#iopoph a:nth-child(2)"}
(Session info: chrome=79.0.3945.88)
任何朋友都能帮忙吗?
您很亲近,但您需要考虑以下几点:
div#iopoph
将标识父节点,即
<div id="iopop" style="">
所以您需要遍历它的大子节点:
<div id="iopoph" class="animated zoomIn" style=" ">
要找到其子元素,可以使用以下Locator Strategies:
位于<a iid="128-73" class="itemsub lowend" price="2.99" name="FALAFEL (6)" style="">
:
div.animated.zoomIn#iopoph a:nth-of-type(1)
位于<a iid="128-74" class="itemsub lowend" price="4.99" name="FALAFEL (12)" style="">
:
div.animated.zoomIn#iopoph a:nth-of-type(2)