selenium中有三种等待的方式,强制等待time.sleep(seconds),隐式等待implicitly_wait(seconds),显示等待WebDriverWait(driver, seconds, 0.5 ),而我们最常用的就是显示等待
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time
# 引入通用键盘模块
from selenium.webdriver.common.keys import Keys
# 引入鼠标操作事件
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
driver.get("https:www.baidu.com")
WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located((By.ID, 'kw')))
driver.find_element_by_id('kw').send_keys('selenium')
time.sleep(2)
driver.find_element_by_id('kw').clear()
time.sleep(2)
driver.find_element_by_id('kw').send_keys('china')
# 用element.submit()代替回车
# driver.find_element_by_id('kw').submit()
# 用element.send_keys(Keys.ENTER)代替enter键
driver.find_element_by_id('kw').send_keys(Keys.ENTER)
显示等待一般配合until函数使用,所以要引入上面的包。
常见的键盘操作还有:
element.send_keys(Keys.CONTROL, 'c')
element.send_keys(Keys.CONTROL, 'v')
element.send_keys(Keys.CONTROL, 'a')
element.send_keys(Keys.CONTROL, 'x')
element.send_keys(Keys.TAB)
常见的鼠标操作事件:
move_to_element(element).perform()
element.click()
element.context_click()
element.double_click()