这个是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()
- #关闭浏览器