等待时间

# 1 sleep():固定休眠时间设置,python的time包里提供了休眠方法sleep,
# 导入包time后就能使用;
# sleep()方法以秒为单位,如果超时设置小于1秒,可以使用小数
import time
from selenium.webdriver.common.by import By
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('E:\python\html\Wait.html')
driver.maximize_window()
# 隐式等待
# driver.implicitly_wait(10)
def highLightElement(driver,element):
#封装好的高亮显示页面元素的方法
#使用JavaScript代码将传入的页面元素对象的背景颜色和边框颜色分别
#设置为绿色和红色
driver.execute_script("arguments[0].setAttribute('style',arguments[1]);",
element,"background:green ;border:2px solid red;")
# time.sleep(1)
# driver.find_element(By.CSS_SELECTOR,'button#b').click()
# time.sleep(8)
# el = driver.find_element_by_class_name('red_box')
# highLightElement(driver, el)

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

# 3、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
driver.find_element(By.CSS_SELECTOR,'button#b').click()
element = WebDriverWait(driver,10).until(lambda x:x.find_element(By.CSS_SELECTOR,'div.red_box'))
highLightElement(driver,element)
posted @ 2020-12-14 00:56  jasonchenYT  阅读(45)  评论(0编辑  收藏  举报