一、元素等待
等待的原因,页面跑不过代码
1、sleep - 强制 辅助的作用(在显性等待的基础上,在sleep下)
2、智能等待:最多愿意等待15秒。但是呢,如果在15内,任何一个时候元素出现了,那就继续下一行代码。
超时了,报超时异常 TimeoutException、 NosuchElementExption
隐性等待:2种场景 1个元素被找到-元素存在/1条命令执行完成-api的执行
每一个会话当中,只需要被调用一次。
会话:从你打开浏览器,到quit关闭整个过程。 --- sessionId
通过driver对象给所有的元素设置的全局等待,在设置的时间范围内一直不断去找元素,如果超时则会抛出异常。
显性等待:明确了要进行等待,等待元素可见?等待url变更为XXX?? 等待新的窗口出现??等待元素可用??
在你需要的地方,直接用显性等待。 条件+等待
等待:等待上限 - 15秒 轮询周期 - 多少秒去确认一下条件是否成立。默认是0.5. WebDriverWait类
WebDriverWait(driver,15,0.5).until/not_until(条件) 等待后还没出现,就会抛异常
条件:有一个专门的条件模块。Expected_condition
针对元素设置的等待时间,并且只对该元素有效,用来等待某个条件满足。默认会每间隔0.5秒去找元素,检查元素是否满足等待的条件,超时则会抛出异常。