import time
一、强制等待
sleep(秒)
二、显示等待
使WebDriver等待指定元素条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutException)
1. 导包 等待类 --> from selenium.webdriver.support.wait import WebDriverWait
2. 导包 判断条件 --> from selenium.webdriver.support import expected_conditions as EC
(将expected_conditions 通过as关键字起个别名:EC)
3. WebDriverWait(driver, timeout, poll_frequency=0.5)
1). driver:浏览器对象
2). timeout:超时的时长,单位:秒
3). poll_frequency:检测间隔时间,默认为0.5秒
4. 调用方法 until(method):直到..时
1). method:调用EC.presence_of_element_located(element)
element:调用By类方法进行定位
WebDriverWait(driver,30).until(EC.presence_of_element_located((By.ID,'userA')))
1 # 导selenium包显示等待 2 from selenium import webdriver 3 from time import sleep 4 5 # 访问chromedriver.exe 6 chromedriver = (r"C:\Users\Administrator.PC-20181218JDBK\AppData\Local\Google\Chrome\Application\chromedriver.exe") 7 8 # 访问驱动 9 driver = webdriver.Chrome(chromedriver) 10 # 实例化浏览器对象 11 # driver=webdriver.Chrome() 12 13 # 定义url 14 url='D:\\pycharm\\lebohtml\\自动化05期-007-Selenium常用定位方法\\html\\注册A.html' 15 # 实例化浏览器对象 16 # driver=webdriver.Chrome() 17 18 19 # 打开url 20 driver.get(url) 21 22 from selenium.webdriver.support.wait import WebDriverWait 23 from selenium.webdriver.support import expected_conditions as EC 24 from selenium.webdriver.common.by import By 25 26 # 调用显式等待 27 ele=WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID,'userA'))) 28 ele.send_keys('admin') 29 30 31 # 第一种写法 32 # driver.find_element_by_id('userA').send_keys('admin') 33 34 # 等待3秒 35 sleep(3) 36 37 # 关闭浏览器 38 driver.quit()