使用 Selenium Python 通过值属性查找元素

Find element by the value attribute using Selenium Python

我正在尝试在网页中查找特定元素。它必须是文本中值中的特定数字...在这种情况下,我需要通过数字 565657 找到元素(请参见下面的外部 HTML)

我已经尝试通过 xpath:("//*[contains(text(),'565657')]")("//input[@value='565657']") 但它没有用。

有人可以帮忙吗?提前致谢!

当您从网页上的元素复制时,原始 XPATH 只是“//*[@id="checkbox15"]”,我需要找到一种方法来查找我在下面提到的数字。

要通过值属性定位元素,即 565657 您可以使用以下任一方法 :

  • 使用css_selector:

    element = driver.find_element(By.CSS_SELECTOR, "input[value*='565657']")
    
  • 使用 xpath:

    element = driver.find_element(By.XPATH, "//input[contains(@vlaue, '565657')]")
    

为了理想地定位你需要归纳WebDriverWait for the and you can use either of the following :

  • 使用CSS_SELECTOR:

    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input[value*='565657']")))
    
  • 使用 XPATH:

    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//input[contains(@vlaue, '565657')]")))
    
  • 注意:您必须添加以下导入:

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