【问题标题】:Python Selenium - find item in a listPython Selenium - 在列表中查找项目
【发布时间】:2021-12-24 15:57:02
【问题描述】:

我有以下几点:

<a href="/firewall_aliases.php" class="navlnk">Aliases</a>
<a href="/firewall_aliases.php" class="navlnk">NAT</a>
<a href="/firewall_aliases.php" class="navlnk">Rules</a>

我似乎无法找到带有文本别名的元素。有可能吗?

谁能帮帮我?

【问题讨论】:

    标签: python selenium xpath css-selectors linktext


    【解决方案1】:

    你可以像这样使用:

    //*[text()="Aliases"]

    另一种方法是

    //a[@href="/firewall_aliases.php" and (text()="Aliases")]
    

    【讨论】:

      【解决方案2】:

      您可以使用以下 XPath 定位器:

      //a[text()="Aliases"]
      

      你可以使用更多的独特性

      //a[@href="/firewall_aliases.php" and (text()="Aliases")]
      

      甚至

      //a[@href="/firewall_aliases.php" and (@class="navlnk") and (text()="Aliases")]
      

      【讨论】:

        【解决方案3】:

        要定位文本为 Aliases 的元素,您可以使用以下任一Locator Strategies

        • 使用link_text

          element = driver.find_element(By.LINK_TEXT, "Aliases")
          
        • 使用css_selector

          element = driver.find_element(By.CSS_SELECTOR, "a.navlnk[href*='firewall_aliases']")
          
        • 使用xpath:

          element = driver.find_element(By.XPATH, "//a[text()='Aliases' and contains(@href, 'firewall_aliases')]")
          

        理想情况下,要找到您需要为visibility_of_element_located() 诱导WebDriverWait 的元素,您可以使用以下任一Locator Strategies

        • 使用LINK_TEXT

          element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.LINK_TEXT, "Aliases")))
          
        • 使用CSS_SELECTOR:

          element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a.navlnk[href*='firewall_aliases']")))
          
        • 使用XPATH:

          element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[text()='Aliases' and contains(@href, 'firewall_aliases')]")))
          
        • 注意:您必须添加以下导入:

          from selenium.webdriver.support.ui import WebDriverWait
          from selenium.webdriver.common.by import By
          from selenium.webdriver.support import expected_conditions as EC
          

        【讨论】:

          猜你喜欢
          • 2011-08-03
          • 1970-01-01
          • 2018-03-23
          • 2014-08-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多