selenium中的三种等待方式
selenium中有三种等待,分别如下:
强制等待:time.sleep(x),强制等待XX秒,不管当前操作是否完成,是否可进行下一步操作都必须等待x秒。
优点:用法简单,可以在编写测试用例的过程中进行调试。
缺点:不能准确的把握需要等待的时间。(如:如果有时候操作还未完成等待就结束了,就会导致报错;如果有时候操作已经结束了,还剩下很长时间,就会导致浪费时间)

隐形等待:implicitly_wait(X),在规定时间内,页面加载完成才可进行下一步操作,只能用来等待元素出现。通常需要设置一个等待时间。
优点:对整个driver都起作用,在开始的时候只需要设置一次就可以
缺点:使用隐形等待,程序会使整个页面元素全部加载完成才可以进行下一步操作,但是有时候我们需要的页面元素已经加载出来了,而因为页面其他元素还没有加载出来,所以导致需要继续等待而浪费时间,所以也不是很灵活。

显性等待:程序每隔x秒查看一次,如果条件符合,则执行下一步操作,否则继续等待,知道等到超时报错(每需要用到一次,就会启动一次,不仅可以查找元素,还可查找其他)。通常有两个时间,一个是等待时间,一个是论循时间,通常结合until和not_nutil使用。
优点:等待判断准确,不会浪费时间
缺点:使用起来比较复杂
用法:WebDriverWait(driver, 超时时间, 论循时间,).until(要执行的方法)
如:WebDriverWait(driver, 20,2).until(EC.presence_of_element_located(locator))
超时时间:最长等待的时间的时间,如20秒
论循时间:每隔x秒执行一次,如2秒
要执行的方法:EC.presence_of_element_located(locator)


浙公网安备 33010602011771号