python selenium web自动化的三种等待的区别

1.强制等待。   不常用

  sleep(秒)

2.隐性等待。 不常用。

  适用条件是查找元素和等待命令的执行完成。

  implicitly_wait(秒)

  如果单位是 30 秒,不会傻等 30 秒,如果你在 30 秒内找到了一个元素,比如第 15 秒找到了,那么后面 15 秒就不再等了,在找到的时候就马上去执行下一步,所以是种智能等待方式。

  只要在这个时间上限之内,这个元素出现了,什么时候出现就什么时候不再等待。如果超过 30 秒还没有出现,就会抛出异常“TimeoutExceiption”,提示等待超时了,元素至今还没有出现。但是它是整个会话周期有效的。

3.必须掌握"显性等待"

  WebDriverWait(driver,等待时长,轮循周期).until()/until_not()

  明确提出到底要等什么,这个就叫做显性,非常明显的条件。

  明确等到某个条件满足后,再去执行下一步。

  第一部分是等待,第二部分是条件。

等待:

由两个东西来完成,第一个是WebDriverWait类,它是个显性等待类,这个类中处理的事有什么呢?

WebDriverWait类初始化的条件:

driver:第一个是会话对象,就是说它要知道在哪个会话基础上去等待什么样的条件完成,知道是在哪个页面。

等待时长:也就是最多等多少秒,例如等 20 秒,20 秒以内,啥时候出现都不成问题。

轮循周期:是多久去看一次,比如轮循周期是 1 秒钟,就是每一秒去看下这个条件是否成立。

如果它每隔多少秒去看了下,最终在你等待的时限之内,还没有找到一样的,会报TimeoutException

条件:

until()

until是直到某某某条件成立,条件写在()里面的。

直到什么条件成立,等到这个条件成立,until_not()就是等到这个条件不成立,直到找不到某个元素为止,直到页面没有哪个元素。








  


posted @ 2021-04-07 19:36  安好_世界  阅读(524)  评论(0编辑  收藏  举报