如何在 Python 的 Selenium 中使用 find_elements 的多个属性(包括部分字符串匹配)

How to use mutiple attributes (including a partial string match) with find_elements in Selenium for Python

目前我有这行代码可以在我尝试使用 Selenium 操作的网页上正确选择此类对象:

pointsObj = driver.find_elements(By.CLASS_NAME,'treeImg')

我需要做的是添加一个部分字符串匹配条件,它在下面一行的“CLGV (AHU-01_ahu_ChilledWtrVlvOutVolts)”部分中查找。

<span class="treeImg v65point" style="cursor:pointer;">CLGV (AHU-01_ahu_ChilledWtrVlvOutVolts)</span>

我在网上找到了 ChainedBy 选项,但我想不出如何在跨度中引用该文本。我需要使用 XPath 吗?我试了一下,但我想不出如何解析它。

同时引用 CLASS_NAMEinnerText 您可以使用以下任一方法 :

  • xpath 使用类名 treeImg 和部分 innerText:

    pointsObj = driver.find_elements(By.XPATH,"//span[contains(@class, 'treeImg') and contains(., 'AHU-01_ahu_ChilledWtrVlvOutVolts')]")
    
  • xpath 使用所有类名和整个 innerText:

    pointsObj = driver.find_elements(By.XPATH,"//span[@class='treeImg v65point' and text()='CLGV (AHU-01_ahu_ChilledWtrVlvOutVolts)']")