0

我想通过文本获取一个元素,但它是数字?我猜?例如,

<a class="ui-state-default" href="#">11</a>

它包含一个数字,因此此代码不起作用

driver.find_element_by_xpath('//*[@text="11"]')

我怎样才能找到这个元素?

4

3 回答 3

0

您可以通过以下方式通过其文本内容访问 Web 元素(即本例中的 div 标签):

driver.find_elements_by_xpath("//*[contains(text(), '11')]")
于 2020-09-07T08:03:08.990 回答
0

要通过文本定位元素,您可以使用以下基于定位器策略之一:

  • 使用xpathtext()

    element = driver.find_element_by_xpath("//*[text()='11']")
    
  • 使用xpathcontains()

    element = driver.find_element_by_xpath("//*[contains(., '11')]")
    

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

  • 使用XPATH

    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@class='ui-state-default' and text()='11']")))
    
  • 使用XPATH

    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@class='ui-state-default' and contains(., '11')]")))
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
于 2020-09-07T11:16:27.303 回答
0
driver.find_element_by_xpath('//*[contains(text,"11")]')

请使用上面的 xpath 来锻炼这个元素

于 2020-09-07T07:56:19.430 回答