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

posted @ 2019-06-03 22:30  秋刀鱼Q  阅读(192)  评论(0编辑  收藏  举报