gpt4 book ai didi

具有多个标签的 Python Selenium XPATH

转载 作者:行者123 更新时间:2023-12-01 08:18:32 34 4
gpt4 key购买 nike

我有一个自动 python 脚本来检查 DOM 中的任何更改。我有一个有效的 xpath:

//td[@class='high-bg']/a[@class='link-action'][@data-hintbox='1'][@data-hintbox-static='1'][@role='button'][@href='javascript:void(0)']

但是它给了我比我需要的更多的输出,其中一些会导致错误。所以我想从 xpath 获取我需要的抽象项目,所以我尝试使用这样的东西:

//table[@id't5c711109b1eea263276674']/tbody[]/tr[]/td[@class='warning-bg']/a[@class='link-action'][@data-hintbox='1'][@data-hintbox-static='1'][@role='button'][@href='javascript:void(0)']

但是它不起作用,那么是否可以用这么多标签搜索 xpath ?

enter image description here

<table id="example">
<tbody>
<tr>
<td class="average-bg">
<a class="link-action" data-hintbox="1" data-hintbox-static="1" role="button" href="javascript:void(0)">1</a>
</td>
</tr>
</tbody>
</table>

最佳答案

关于您的代码试验:

  • 在第一次尝试中,您尝试使用元素的所有属性来构造xpath:

    //td[@class='high-bg']/a[@class='link-action'][@data-hintbox='1'][@data-hintbox-static='1'][@role='button'][@href='javascript:void(0)']
  • 具有相似属性的元素可以存在,但位于不同的位置/位置。因此,它返回的输出超出了您所需的输出。

  • 在第二次尝试中,您构建了一个绝对 xpath,它脆弱:

    //table[@id't5c711109b1eea263276674']/tbody[]/tr[]/td[@class='warning-bg']/a[@class='link-action'][@data-hintbox='1'][@data-hintbox-static='1'][@role='button'][@href='javascript:void(0)']
<小时/>

解决方案

根据您提供的基于文本的 HTML,要识别所需的元素,您可以使用以下解决方案之一:

  • xpath:

    driver.find_element_by_xpath("//table[@id='example']//td[@class='average-bg']/a[@class='link-action' and text()='1']")
  • css_selector:

    driver.find_element_by_css_selector("table#example td.average-bg>a.link-action")

关于具有多个标签的 Python Selenium XPATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54840281/

34 4 0