【问题标题】:Selenium check if element exists without exceptionSelenium 检查元素是否存在无异常
【发布时间】:2022-10-20 21:03:03
【问题描述】:

我只想检查一个元素是否存在于 for 循环中,但它只是引发异常并结束代码。我该怎么做?

【问题讨论】:

    标签: python selenium selenium-webdriver automation selenium-rc


    【解决方案1】:

    而不是driver.find_element,您应该在这里使用driver.find_elements 方法。
    像这样的东西:

    if driver.find_elements_by_xpath("/div[@class='class_name']"):
        driver.find_element_by_xpath("/div[@class='class_name']").click()
    

    或这个:

    elements = driver.find_elements_by_xpath("/div[@class='class_name']")
    if elements:
        elements[0].click()
    

    driver.find_elements 会给你一个列表匹配传递的定位器的 web 元素。如果找到此类元素,它将返回由 Python 解释为布尔值 True 的非空列表,而如果未找到匹配项,它将为您提供一个由 Python 解释为布尔值 False 的空列表

    【讨论】:

    • 谢谢,这很有帮助,但我在 for 循环中使用它。您将如何为不存在的元素编写 if else/elif?就像一个布尔类型的答案。一直说错
    • 我的回答包括你的要求。如果元素存在,你想做什么,在其他情况下怎么办?
    • 我只想要一个简单的“是”或“否”,但它总是一直告诉我是或不是,就像它没有真正检查任何东西一样。我如何以某种方式或类似的方式将其存储为布尔值?
    • 尝试:检查 = web.find_element(By.CLASS_NAME, "zip_code_address used-hide") print ("Yes") except: print ("Not")
    • 由于某种原因,这一直在评估
    【解决方案2】:

    @预言家。谢谢你的回答人!它帮助了我!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-08
      • 2018-01-23
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      相关资源
      最近更新 更多