首页 > 解决方案 > 用于尽快检查硒中是否存在元素的 Python 代码

问题描述

我是 Python 新手,我正在尝试编写程序代码来尽快检查页面中是否存在或存在元素 ID,如果不存在,它会不断刷新页面直到它存在..

我通过 ID 尝试了 driver.find_element 和 try 和 except,执行该过程大约需要六秒钟我需要一个更快的方法来检查元素是否存在

我过去的代码是:

while true:
        try:
            a = driver.find_element_by_id('ID')
            break
        except NoSuchElementException:
            driver.refresh()

它工作正常,但我想知道是否有办法让这个过程更快.. 谢谢,

标签: pythonselenium

解决方案


这取决于网站如何使元素出现。

如果它是一个相对静态的网站,这意味着元素只能在刷新后出现,那么你的代码是最快的代码。

如果元素是使用 javascript 创建的,这意味着即使没有刷新它也会出现在网站上,那么这可能会更快:

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, 'ID'))
)

它每 500 毫秒检查一次元素,直到找到它或 10 秒后超时。

阅读此处了解更多信息:https ://selenium-python.readthedocs.io/waits.html


推荐阅读