【问题标题】:Python Selenium - Wait until Element is loadedPython Selenium - 等到元素加载
【发布时间】:2022-01-01 17:30:08
【问题描述】:

Selenium 经常遇到脚本崩溃的问题,因为我想访问尚未加载的元素。

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method": "xpath", "selector":"//*[@id="ipv4_info"]/span[3]"}

目前我是这样做的,我在这些地方之前放了一个time.sleep(30),但有时加载元素需要更长或更短的时间。

有什么方法可以等到元素加载完毕,一旦加载就立即继续执行其余代码?

【问题讨论】:

    标签: python python-3.x selenium selenium-webdriver


    【解决方案1】:

    要定位你需要为WebDriverWait诱导visibility_of_element_located()的元素,你可以使用下面的Locator Strategies

    • XPATH

      element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//*[@id="ipv4_info"]/span[3]")))
      
    • CSS_SELECTOR

      element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "#ipv4_info span:nth-child(3)")))
      
    • 注意:您必须添加以下导入:

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

    【讨论】:

      猜你喜欢
      • 2018-11-01
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 2021-09-05
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多