等待操作

为了保证脚本的稳定性,有时候需要引入等待时间,等待页面加载元素后再进行操作
selenium提供三种等待时间设置方式。

sleep()

固定休眠时间设置,python的time包里提供了休眠方法sleep, 导入包后就能使用;
sleep()方法以秒为单位,如果超时设置小于1秒,可以使用小数

  import time
  time.sleep(0.5)

implicitlyWait()

implicitlyWait()方法比sleep()方法智能,sleep()方法只能在一个固定的时间等待,而implicitlyWait()可以在一个时间范围内等待,称为隐式等待

  driver.implicitly_wait(100)
  element=driver.find_element_by_css_selector("div.red_box")

备注:设置等待时间100s,页面上的元素5s后出现,只等待5s。不会等待100秒

WebDriverWait()

显示等待,语法格式如下:

  WebDriverWait(driver,timeout,poll_frequency=0.5,ignore_exceptions=None)
  • driver:WebDriver的驱动程序(IE,火狐,谷歌或远程)
  • timeout:最长超时时间,默认以秒为单位
  • poll_frequency:休眠时间的间隔(步长)时间,默认为0.5秒(即每500毫秒扫描 一次页面)
  • ignore_exceptions:超时后的异常信息,默认情况下抛
  • NoSuchElementException异常

举例:

  from selenium.webdriver.support.ui import WebDriverWait
  #引入WebDriverWait类
  element=WebDriverWait(driver,3).until(lambda x:
  x.find_element_by_css_selector(div.red_box"))
posted @ 2020-08-24 23:51  心脏鼓点  阅读(163)  评论(0编辑  收藏  举报