首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用cssSelector :nth-子(N)在Python中定位元素

如何使用cssSelector :nth-子(N)在Python中定位元素
EN

Stack Overflow用户
提问于 2019-12-31 21:56:07
回答 3查看 3.8K关注 0票数 3

我使用通过使用nth-child(n)来定位元素。

下面是我的html代码:

代码语言:javascript
复制
<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标记,所以我尝试:

代码语言:javascript
复制
driver.find_element_by_css_selector('div#iopoph a:nth-child(2)').click()

但是有一个错误说:

代码语言:javascript
复制
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)

有朋友能帮忙吗?

EN

回答 3

Stack Overflow用户

发布于 2020-01-02 11:22:13

你很亲密,但你需要考虑几件事:

  • div#iopoph将标识父节点,即
  • ,因此您需要遍历它的大子节点:
  • 来定位它的子元素,您可以使用以下Locator Strategies

代码语言:javascript
复制
- Locating `<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:第n种类型(2)

票数 1
EN

Stack Overflow用户

发布于 2020-01-02 15:27:42

您可以使用这个定位器a:nth-of-type(2)

票数 1
EN

Stack Overflow用户

发布于 2020-10-12 12:29:02

在你的例子中-

div#iopop a:nth-child(3) -> returns first a <anchor> tag i.e. <a iid="128-73"

div#iopop a:nth-child(4) -> returns second a <anchor> tag i.e. <a iid="128-74"

nth-child(index):

第n-子(索引)方法用于选择/获取指定的索引子元素。但是指定的索引元素应该与冒号(:)前面提到的相同。

在你的情况下-

div#iopoph a:nth-child(2)->它指向标记,它与前面提到的标记不一样:(冒号)。因此,它返回非解析。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59548700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档