我怎样才能通过文本找到元素,但它是硒中的数字

How can I find element by text but it's number in selenium

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

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

它包含一个数字,因此此代码无效

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

如何找到这个元素?

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

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

您可以通过文本内容访问网络元素(即本例中的 div 标签):

driver.find_elements_by_xpath("//*[contains(text(), '11')]")

要通过文本定位元素,您可以使用以下任一方法 based :

  • 使用 xpathtext():

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

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

理想情况下,定位你需要归纳的元素 for the visibility_of_element_located() and you can use either of the following :

  • 使用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