selenium-三种等待方式
一、强制等待
强制等待就是前一步执行完成后必须等待5秒才能执行下一步,不灵活,影响代码执行的整体速度。
from selenium import webdriver import time driver=webdriver.Chrome() driver.get('https://www.baidu.com') time.sleep(5) #强制等待5秒 driver.find_element_by_id('kw').send_keys('软件测试') driver.find_element_by_id('su').click()
二、隐性等待
隐性等待是在规定时间内等待浏览器加载完成,对整个driver起作用,所以只需要设置一次即可。当页面有弹出框时,隐性等待对弹出框的等待不起作用,它只针对页面刷新起作用。若最长等待时间完后为加载成功,直接抛出异常。
from selenium import webdriver driver=webdriver.Chrome() driver.get('https://www.baidu.com') driver.implicitly_wait(5) #最长等待5秒 driver.find_element_by_id('kw').send_keys('软件测试') driver.find_element_by_id('su').click()
三、显性等待
显性等待是在规定等待时间内,每隔多少秒判断一次,看是否达到条件。若达到条件,则执行下一步,否则继续等待,直到超过设置的最长时间,抛出TimeoutException。
#!usr/bin/env python #-*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.support import expected_conditions from selenium.webdriver.support.wait import WebDriverWait driver=webdriver.Chrome() driver.get('https://www.baidu.com') WebDriverWait(driver,10,0.5).until(expected_conditions.alert_is_present()) #在10秒内没0.5秒判断一次弹出框是否出现,出现后执行下一步
参考:https://blog.csdn.net/huilan_same/article/details/52544521