显示等待和隐式等待的区别

显示等待明确的要等到某个元素出现或者某个可点击等条件,等不到,一直等,除非在规定时间之内都没有找到,那么就要跳出异常

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

 

 

# 不推荐使用 代码调试的时候用
import time
time.sleep(1)
# 隐士等待 忘掉他 
driver.implicitly_wait(10)

原理:mplicity_wait()默认参数的单位为妙,本例中设置等待时长为10秒,首先这10秒并非一个固定的等待时间,它并不影响脚本的执行速度。其次,它并不针对页面上的某一元素进行等待。当脚本执行到某个元素定位是,如果元素可以定位,则继续执行,如果元素定位不到,则它将以轮询的方式不断地判断元素是否被定位到,它的作用范围就是Webdriver对象实例的整个生命周期。

# 显示等待

原理:就是明确的要等到某个元素的出现或者是某个元素的可点击等条件,等不到,就一直等,除非在规定的时间之内都没找到,那么久跳出Exception
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
s = (By.CSS_SELECTOR,'#i1')
WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located(s))
driver.find_element_by_css_selector('#i1').send_keys(111)

posted @ 2019-10-14 13:29  狐觞  阅读(3557)  评论(0编辑  收藏  举报