Python + Selenium WebDriver API之键鼠操作

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()

文章作者: &娴敲棋子&
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 &娴敲棋子& !
评论
  目录