from selenium import webdriver
from time import sleep
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
class Testcase(object):
def __init__(self):
self.driver = webdriver.Chrome()
self.driver.get("http://www.baidu.com")
# 固定等待,用在调试中
def test_sleep(self):
self.driver.find_element_by_id("kw").send_keys("selenium")
sleep(2)
self.driver.find_element_by_id("su").click()
sleep(3)
self.driver.quit()
# 隐式等待
# 设置等待时间 这个时间是全局变量,如果超过时间没加载出就会抛出异常
def test_impplicitly(self):
self.driver.implicitly_wait(10)
self.driver.find_element_by_id("kw").send_keys("selenium")
self.driver.find_element_by_id("su").click()
self.driver.quit()
# 显示等待
# WebDriverWait是selenium提供得到显示等待模块引入路径
# 设置等待时间 设置这个时间来加载元素,如果超过时间没加载出就会抛出异常
def test_wait(self):
# 程序每0.5秒检查,是否满足:标题包含“百度一下”这个条件,检查是否满足条件的最长时间为:10秒,超过10秒仍未满足条件则抛出异常
wait = WebDriverWait(self.driver, 10, 0.5)
wait.until(EC.title_is('百度一下,你就知道'))
self.driver.find_element_by_id("kw").send_keys("selenium")
self.driver.find_element_by_id("su").click()
self.driver.quit()
if __name__ == '__main__':
case = Testcase()
case.test_wait()