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

标签 python selenium xpath css-selectors webdriverwait

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

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

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

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

最佳答案

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

  • 使用 css_selector:

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

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

要找到理想位置,您需要诱导 WebDriverWait对于visibility_of_element_located()您可以使用以下任一项 locator strategies :

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

关于python - 使用 Selenium Python 通过值属性查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71683346/

相关文章:

python - Python 的 time.time() 是否返回本地或 UTC 时间戳?

python - Django-tables2 列总数

C# Selenium Web 驱动程序和 CSS : Start point

java - 为什么 Java 向我的 XPath 添加反斜杠?

python - PyCharm:指定返回变量的类型?

python - 使用 excelwriter 写入 Excel 文件没有给出文件

java - URL 无法使用 WebDriver 打开

javascript - 在 Internet Explorer 中使用 selenium 的 JavascriptExecutor 打开一个新选项卡

php - 使用 DOM 获取 div 的内容(包括子标签)

ruby - 使用 REXML XPath 按顺序获取元素