Selenium – 元素等待
- 浏览器的等待可以分为三种:强制等待、隐式等待、显式等待。
强制等待
-
强制等待使用python自带的
time
模块; -
time.sleep(second)
:强制等待,无论页面如何,强制让代码暂停若干秒。
# 导入time模块
import time
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('python')
driver.find_element_by_id('su').click()
# 强制等待三秒
time.sleep(3)
driver.quit()
隐式等待
-
隐式等待是设置一个最大时间,页面会在这个时间内等待元素加载出来;(注意:如果超时还是会报错还没有等待到元素出现,那么还是会抛出异常);
-
driver.implicitly_wait(second)
:隐式等待是全局的设置,设置一次全局生效。
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.maximize_window()
# 隐式等待15秒
driver.implicitly_wait(15)
driver.find_element_by_id('kw').send_keys('python')
driver.find_element_by_id('su').click()
driver.quit()
其他类型等待
driver = webdriver.Chrome()
# 设置页面加载超时时间
driver.set_page_load_timeout(30)
# 设置异步脚本加载时间
driver.set_script_timeout(30)
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/289383.html