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')]]")
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')]]")