python的三种等待方式及优缺点小结
一、调用方式
1.强制等待
调用time模块,使用time.sleep(n),强制等待n秒
2.隐式等待
implicitly_wait(n),设置隐式等待最大时间n秒,等待元素加载完成,如果到了时间元素没有加载出,就抛出一个NoSuchElementException的错误。
3.显式等待
调用WebDriverWait()类,显性等待是对指定元素进行等待的一种等待方式。通过设置最大等待时间,检查频率对页面的元素来进行等待,一旦找到元素,则停止等待,进入后续步骤,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException异常。
from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get('https://www.baidu.com') # 设置浏览器:driver 等待时间:? wait = WebDriverWait(driver, 秒数)# 重要! # 设置判断条件:等待id='kw'的元素加载完成 input_box = wait.until(EC.presence_of_element_located((By.ID, 'kw'))) # 在关键词输入:关键词 input_box.send_keys('关键词') driver.quit()
二、优缺点
1.强制等待
缺点:较为死板,不能准确把握等待时间,若大量使用会影响执行效率,浪费不必要的时间
优点:调用简单,可在调试时使用
2.隐式等待
缺点:使用不是很灵活,程序会一直等待整个页面加载完成,才会执行下一步操作,需要等待时间完成;在等待时间内页面没有加载完成,时间一到也会进入下一步操作,要定位的元素没有出现则会报元素无法找到的错误
优点:对整个driver的周期都起作用,每一次操作都会隐式等待,只设置一次
3.显示等待
缺点:使用相对复杂,和强制等待类似,每一行等待只执行一次
优点:等待判断准确,不会浪费多余的等待时间,可提高执行效率
总结
到此这篇关于python的三种等待方式及优缺点小结的文章就介绍到这了,更多相关python三种等待方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
这篇文章主要介绍了15款Python编辑器的优缺点,别再问我“选什么编辑器”啦,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2020-10-10Python识别快递条形码及Tesseract-OCR使用详解
这篇文章主要介绍了Python识别快递条形码及Tesseract-OCR使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-07-07
最新评论