Python Selenium 如何使用来自 TAG 和 SUB TAG 的信息通过 XPATH 查找元素

Python Selenium How to find elements by XPATH with info from TAG and SUB TAG

HTML:

<div id="related">
      <a class="123" href="url">
            <h3 class="456">
              <span id="id00" aria-label="TEXT HERE">
              </span>
            </h3>
        </a>

       <a class="123" href="url">
            <h3 class="456">
              <span id="id00" aria-label="NOT HERE">
              </span>
            </h3>
        </a>
</div>

我正在尝试查找并单击 class="123" 的 div id="related" 内并且 SPAN aria-label 包含“TEXT”

 items = driver.find_elements(By.XPATH, "//div[@id='related']//a[@class='123'][contains(@href, 'url')]//span[contains(@aria-label, 'TEXT']")

但它没有找到 href,它只是找到了 span。

那我想做:

items[3].click()

我该怎么做。

您的 XPath 有一些拼写错误。
试试这个:

 items = driver.find_elements(By.XPATH, "//div[@id='related']//a[@class='123'][contains(@href,'watch?v=')]//span[contains(@aria-label,'TEXT')]")

这将为您提供当前块内的 span 元素。
要找到 a 元素,您应该使用另一个 XPath。
UPD
要在 div 中找到所有 a 元素 @id='related' 并包含具有特定 aria-label 属性的 span 可以像这样清楚地转换为 XPath:

 items = driver.find_elements(By.XPATH, "//div[@id='related']//a[@class='123' and .//span[contains(@aria-label,'TEXT')]]")