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:等待条件。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM