这个是python+selenium之元素等待的三种方式
'''
异常讲解
try:
open("abc.txt",'r')
print(aa)
except BaseException as msg:
print(msg)
'''
#coding=utf-8
from selenium import webdriver
from time import ctime
driver = webdriver.Firefox()
#设置隐式等待为10s
driver.implicitly_wait(10)
driver.get('http://www.baidu.com')
try:
print(ctime())
driver.find_element_by_id("kw222").send_keys("selenium")
except Exception as e:
print(e)
finally:
print(ctime())
driver.quit()
#关闭浏览器
#coding=utf-8
#显式等待
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
#导入except_conditions类,并将它命名为EC
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
ele = WebDriverWait(driver,5,0.5).until(
EC.presence_of_element_located((By.ID,'kw'))
)
'''
WebDriveWait是由webdrive提供的等待方法,在设置时间内,
默认每个一段时间检测页面是否存在当前元素,
如果超时,则抛出异常
drive:浏览器驱动
5:最长超时时常
0.5:检测的间隔时间
WebDriveWait一般配合until和until_not方法配合使用
until:调用该方法提供的驱动程序作为一个参数,直到返回值为ture
until_not:调用该方法提供的驱动程序作为一个参数,直到返回值为false
本例中,persence_of_element_located是except_conditions的一个方法,
这个方法是判断元素是否被加在当前html里;
'''
ele.send_keys('selemium')
driver.quit()
#关闭浏览器