selenium--全局等待,智能等待

本文介绍了Selenium中的全局等待(隐式等待)和智能等待概念。隐式等待在无法立即找到元素时,会等待设定的固定时间。默认为0秒,全局生效至Webdriver对象实例结束。而智能等待则是一种更灵活的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

隐式等待是在尝试发现某个元素的时候,如果没能立刻发现,就等待固定长度的时间。默认设置是0秒。一旦设置了隐式等待时间,它的作用范围就是Webdriver对象实例的整个生命周期。

#coding=UTF-8
from selenium import webdriver
import time

if __name__ == '__main__':
    driver = webdriver.Firefox(executable_path='D:\Mozilla Firefox')
    driver.maximize_window()
    driver.get('file:///E:/selenium_study/demo.html')
    time.sleep(2)


    driver.implicitly_wait(10)
    #全局最长等待时长
    #对于所有的findelement方法生效,每一个findelement方法在查询元素的时候,每0.5S判断一次。
    # 判断是不是正确查询到元素了。没有发生异常。最长查10S,20次还没有查询完抛异常

    driver.find_element_by_class_name('wait').click()
    # time.sleep(3)
    print driver.find_element_by_class_name('rad').text

智能等待

#coding=UTF-8
from selenium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

if __name__ == '__main__':
    driver = webdriver.Firefox(executable_path='D:\Mozilla Firefox')
    driver.maximize_window()
    driver.get('file:///E:/selenium_study/demo.html')
    time.sleep(2)

    driver.find_element_by_xpath("//input[@class='wait']").click()

     #等待wait。。。until,
    # WebDriverWait类,driver,最长等待时间,多久询问一次。until,直到该元素出现为止
    element = WebDriverWait(driver,10,0.5).until(
        #等到元素可以被定位
        EC.visibility_of_element_located((By.XPATH,"//div[@id='display']/div"))
    )
    #EC当某个自定义元素出现

    print element.text
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值