webdriver显式和隐式等待、强制等待

implicitly_wait() 方法是隐式等待,用来设置超时,一般把implicitly_wait()方法调用在加载测试地址后,等待所测试的应用程序加载
WebDriverWait() 是显式等待,等待的时间是固定的
time.sleep() 强制等待

from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium import webdriver
driver
=webdriver.Chrome() driver.maximize_window() driver.get('https://baidu.com') driver.implicitly_wait(30) #元素是否出现可点 ,参数是locator xinwei=WebDriverWait(driver,5).until(expected_conditions.element_to_be_clickable((By.CSS_SELECTOR,'.mnav'))) xinwei.click() #验证相应位置元素的文本信息,返回值是布尔 俩参数locator text driver.find_element_by_xpath(".//*[@id='u1']/a[7]").click() driver.find_element_by_id('TANGRAM__PSP_10__userName').send_keys('123') driver.find_element_by_id('TANGRAM__PSP_10__submit').click() bo=WebDriverWait(driver,5).until(expected_conditions.text_to_be_present_in_element((By.CSS_SELECTOR,'#TANGRAM__PSP_10__error'),'请您输入密码')) print(bo)#打印结果:True #元素是否可见,可见后操作 参数是locator sou=WebDriverWait(driver,5).until(expected_conditions.visibility_of_element_located((By.CSS_SELECTOR,'#kw'))) sou.send_keys('java') driver.quit()
原文地址:https://www.cnblogs.com/shuzf/p/11246264.html