首页 > 解决方案 > 如何通过特定的子/后代元素选择元素

问题描述

<a class="author " name="baut001" href="#!">
   <span class="content">
      <span class=" given-name">first name</span>
      <span class=" surname">Last name</span>
      <svg focusable="false" viewBox="128" width="19.125" height="24" class="icon ">
         <path d="m22.6 77"></path>
      </svg>
   </span>
</a>
<a class="author" name="baut002" href="#!">
<span class="content">
<span class="text given-name">first name</span>
<span class="text surname">Last name</span>
<span class="author-ref" id="baff002"><sup>a</sup></span>
</span>
</a>
<a class="author" name="baut003" href="#!">
   <span class="content">
      <span class=" given-name">first name</span>
      <span class=" surname">Last name</span>
      <svg focusable="false" viewBox="128" width="19.125" height="24" class="icon ">
         <path d="m22.6 77"></path>
      </svg>
   </span>
</a>

有三个<a>标签,其中两个包含<svg>标签,我想点击那些元素。

标签: pythonseleniumselenium-webdriverweb-scraping

解决方案


您可以<svg>在定位器中指定标签。

您可以使用css_selector

driver.find_elements_by_css_selector('.author svg')

或者xpath

driver.find_elements_by_xpath('//a[@class="author"]//*[local-name()="svg"]')

推荐阅读