from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep, ctime
from selenium.common.exceptions import NoSuchElementException
driver = webdriver.Firefox()
print(ctime())
# 设置隐式等待
driver.implicitly_wait(10)
# 隐式等待可利用语句:try...except...else...finally...
# 先执行try定位元素位置
try:
driver.get(r"http://www.baidu.com/")
driver.maximize_window() # 全屏显示
sleep(2)
el = driver.find_element_by_name("wd")
sleep(3) # 休眠3秒
# 找不到元素位置就执行except
except NoSuchElementException as e:
print(e)
# 找到元素位置执行else语句
else:
el.send_keys("pythonm")
# 删除多输入的m
driver.find_element_by_name("wd").send_keys(Keys.BACK_SPACE)
sleep(3)
# 输入空格+“自动化测试”
driver.find_element_by_name("wd").send_keys(Keys.SPACE)
sleep(3)
driver.find_element_by_name("wd").send_keys("自动化测试")
sleep(3)
# 输入enter键百度一下
driver.find_element_by_id("su").send_keys("Keys.ENTER")
sleep(3)
# 定不定位到元素都会执行finally语句
finally:
print(ctime())
driver.quit()
隐式等待,就是在创建driver时,为浏览器对象创建一个等待时间,这个方法是得不到某个元素就等待一段时间,直到拿到某个元素位置。在使用隐式等待的时候,实际上浏览器会在你自己设定的时间内部断的刷新页面去寻找我们需要的元素。有时候实际等待的时间会超出你设置的时间