python中的webdriverWait类(时间事件)

webdriverWait类

在UI自动化中,等待主要分为三种形式:

1.固定等待,如调用time模块中的sleep方法,固定等待几秒

2.隐式等待,用到的方法是implicitly_wait,隐式等待值得是设置最长等待时间

3.显示等待,
from selenium import webdriver
import time as  t
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as es
from selenium.webdriver.common.by import By
显示等待:
(1)element_to_be_clickable找到元素后进行操作
driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get('http://www.baidu.com')
#element_to_be_clickable找到元素后进行操作
so=WebDriverWait(driver=driver,timeout=10).until(es.element_to_be_clickable((By.ID,'kw'))) #显示等待
so.send_keys('hi') t.sleep(3) #固定等待
driver.quit()
(2)visibility_of_element_located()判断元素是否可见,主要用于判断在可见后
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
#visibility_of_element_located()判断元素是否可见,主要用于判断在可见后
search=WebDriverWait(driver=driver,timeout=4).until(es.visibility_of_element_located((By.ID,'kw')))
search.send_keys('hi')
t.sleep(2)
driver.quit()
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
aboutbaidu=WebDriverWait(driver=driver,timeout=10).until(es.visibility_of_element_located((By.LINK_TEXT,'关于百度')))
aboutbaidu.click()
t.sleep(3)
driver.quit()  
(3)text_to_be_present_in_element()一般验证一个文本的错误信息或者提示信息,以及其他信息
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
#输入新浪邮箱帐号
driver.find_element_by_id('freename').send_keys('')
#输入新浪邮箱密码
driver.find_element_by_id('freepassword').send_keys('')
#点击新浪邮箱登录按钮
driver.find_element_by_link_text('登录').click()
#text_to_be_present_in_element()一般验证一个文本的错误信息或者提示信息,以及其他信息
isTrue=WebDriverWait(driver=driver,timeout=10).until(es.text_to_be_present_in_element((By.XPATH,'/html/body/div[3]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[1]/span[1]'),'请输入邮箱'))
print(format(isTrue))
t.sleep(2)
driver.quit()
posted @ 2021-08-16 18:52  就不将就就  阅读(936)  评论(0编辑  收藏  举报