-1

我有以下内容:

<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>

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

谁能帮我吗?

4

3 回答 3

1

你可以像这样使用:

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

另一种方法是

//a[@href="/firewall_aliases.php" and (text()="Aliases")]
于 2021-11-12T09:29:07.173 回答
0

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

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

为了获得更多独特性,您可以使用

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

甚至

//a[@href="/firewall_aliases.php" and (@class="navlnk") and (text()="Aliases")]
于 2021-11-12T09:38:33.503 回答
0

要使用文本定位元素,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')]")
    

理想情况下,要定位您需要诱导WebDriverWait的元素visibility_of_element_located(),您可以使用以下任一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
    
于 2021-11-12T09:47:05.507 回答