代码之家  ›  专栏  ›  技术社区  ›  Tyler Moore

如何在Selenium for Python中使用多个属性(包括部分字符串匹配)和find_元素

  •  1
  • Tyler Moore  · 技术社区  · 2 年前

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

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

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

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

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

    1 回复  |  直到 2 年前
        1
  •  0
  •   undetected Selenium    2 年前

    指的是 CLASS_NAME 还有 innerText 您可以使用以下任一选项 locator strategies :

    • xpath 使用类名 treeImg 和部分内部文本:

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