Python + Selenium WebDriver API之键鼠操作
01 鼠标操作
在浏览器操作中,绝大部分时间都是借助鼠标来完成的,在Selenium WebDriver中,与鼠标操作相关的方法,都是在ActionChains
类中封装的。
ActionChains
类为我们提供的鼠标操作,常用的方法有:
perform()
执行 ActionChains 类中存储的所有行为context_click()
右击double_click()
双击drag_and_drop()
拖动move_to_element()
鼠标悬停
鼠标悬停的实例:
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
browser = webdriver.Chrome()
browser.get('https://www.baidu.com/')
# 定位到要悬停的元素
above = browser.find_element_by_link_text("设置")
# 对定位到的元素执行鼠标悬停操作
ActionChains(browser).move_to_element(above).perform()
在这里首先要导入 ActionChains 类,接下来调用 ActionChains 类,再把浏览器驱动 browser 作为参数传入,然后使用 move_to_element() 方法模拟鼠标移动到指定元素上,最后使用 perform() 方法提交所有 ActionChains 类中存储的行为。
02 键盘操作
使用浏览器过程中,还是会用到键盘来进行一些操作的,比如在输入框中填入一些内容。
在此前,我们已经在使用的send_keys()
方法就是用来模拟键盘输入的,我们只是用来输入一些文本内容。
当然我们还可以用它来输入键盘中的按键,如回车键、退格键、F5之类的功能键,甚至组合起来使用的快捷键。
这里需要注意的是,若打算模拟键盘中各种按键及组合键的用法,需要导入Keys
类。
from selenium.webdriver.common.keys import Keys
实例:
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Chrome()
browser.get('https://www.baidu.com/')
browser.find_element_by_id("kw").send_keys("python seleniumm")
time.sleep(1)
browser.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
time.sleep(1)
browser.find_element_by_id("kw").send_keys(Keys.SPACE)
time.sleep(1)
browser.find_element_by_id("kw").send_keys("教程")
time.sleep(1)
browser.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')
time.sleep(1)
browser.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')
time.sleep(1)
browser.find_element_by_id("kw").send_keys(Keys.CONTROL, 'v')
time.sleep(1)
browser.find_element_by_id("su").send_keys(Keys.ENTER)
time.sleep(3)
browser.quit()