selenium的三种等待方式

Posted bug-king

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium的三种等待方式相关的知识,希望对你有一定的参考价值。

一、强制等待:

  time.sleep(3)---->强制等待3秒

二、隐式等待: 

  driver.implicitly_wait(20)
  含义:设置的这个20秒表示最大等待时长,它等待到什么情况结束呢?--->它就相当于我们在浏览器中,加载一个页面,看到页面不在转圈圈,全部加载完成之后,才算等待结束。
  全部加载完成在浏览器其实包含以下内容:
    1.页面的html从服务器返回。
    2.页面的所有静态资源,js,css,img,广告,全部从服务器获取,在加载到页面中。

  隐式等待的弊端:
  一般我们在写程序的时候,这里使用等待,最主要的目的就是等待我们想要的数据能够出来就可以了。用隐式等待他是等到所有资源都加载的完成的,我们花了一部分时间,去等待我们不想要的资源,所以隐式等待并不常用。

三、显式等待:会设置一个条件,当页面满足该条件时,等待完成!

  调用模块

    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdrver.common.by import By

    创建一个等待对象

wait=WebDriverWait(driver"""等待作用的那个driver""",20"""最大等待时长,超过时长会报timeout异常""")
wait.until(
            EC.presence_of_element_located(
                    By.XPATH"""定位器的选择器名称。By.ID,By.CSS_SELECTOR""",//div[@class="recreit-list"] """定位器""",locator))

presence_of_element_located:等待条件。

 

以上是关于selenium的三种等待方式的主要内容,如果未能解决你的问题,请参考以下文章

selenium的三种等待方式

Selenium常用的三种等待方式

Selenium-----wait的三种等待

UI自动化测试中,Selenium的三种等待方式详解

selenium的三种等待方式

selenium--等待的三种方式