''' 元素等待 显示等待是针对某一个元素进行相关等待判定 隐式等待不针对某一个元素进行等待,而是全局元素等待 --------------------------------------------- WebDriverWait--显示等待针对元素时使用 expected_conditions--预期条件类() NoSuchElementException--用于隐式等待抛出异常 By用于元素定位 --------------------------------------------- from selenium import webdriver from selenium.webdriver.common.by import By from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC ''' #显式等待--------------------------------------------------------------- from selenium import webdriver from time import sleep from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver=webdriver.Firefox() driver.get("https://cn.bing.com/") sleep(4) driver.find_element_by_css_selector("#sb_form_q").send_keys("Python") #显式等待--判断搜素按钮是否存在 element=WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located((By.CLASS_NAME,"b_searchboxSubmit"))) element.click() sleep(4) driver.quit()
#显式等待---------------------------------------------------------------
#隐式等待---------------------------------------------------------------
from selenium import webdriver from time import sleep,ctime from selenium.common.exceptions import NoSuchElementException driver=webdriver.Firefox() driver.get("http://www.baidu.com/") sleep(2) driver.implicitly_wait(2) #检测搜索框是否存在 try: print(ctime()) driver.find_element_by_css_selector("#sb_form_q").send_keys("Python") driver.find_element_by_css_selector(".b_searchboxSubmit").click() except NoSuchElementException as msg: print(msg) finally: print(ctime()) sleep(4) driver.quit()
#隐式等待---------------------------------------------------------------