selenium鼠标键盘事件
从之前的几篇文章对selenium描述的示例中,对元素定位及其简单操作click和set_keys进行了举例,这两个操作也是在日常操作中占据不较多的使用场景。而一些特殊场景需要操作鼠标或键盘进行特殊操作,如:鼠标左、右点击、悬停,键盘F5、CTRL+C、CTRL+V……
鼠标事件:
对应的selenium除了可以使用 click( ) 来模拟鼠标的单击操作,现在Web产品中还提供了更丰富的鼠标交互方式,例如鼠标右键、双击、悬停、拖动等功能,在WebDriver中,将这些关于鼠标操作的方法都封装在 ActionChains 类中。
· perform():执行所有ActionChains存储的行为
· context_click():右击
· double_click():双击
· drag_and_drop():拖动
· move_to_element():悬停
举例:
from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom time import sleepdriver = webdriver.Chrome()
#鼠标双击事件
double = driver.find_element_by_xpath('path1')ActionChains(driver).double_click(double).perform()
# 拖动
source = driver.find_element_by_xpath('path1')target = driver.find_element_by_xpath('path2')ActionChains(driver).drag_and_drop(source, target).perform()
#鼠标移到元素上
above = driver.find_element_by_xpath('path1')ActionChains(driver).move_to_element(above).perform()
#鼠标移右击事件
right = driver.find_element_by_xpath('path1')ActionChains(driver).context_click(right).perform()
#单击hold住
left_hold = driver.find_element_by_xpath('path1')ActionChains(driver).click_and_hold(left_hold).perform()
键盘事件:
Keys类提供了几乎键盘上的所有按键的方法,在前面的博文中有了解到,send_keys()可以用来模拟键盘输入的操作,除此之外,我们还可以用Keys来模拟键盘上的按键,或者组合键,如Ctrl + C、Ctrl + V等等。
下面介绍几个常用的键盘操作:
· Keys.BACK_SPACE:删除键
· Keys.SPACE:空格键
· Keys.TAB:Tab键
· Keys.ESCAPE:回退键
· Keys.ENTER:回车键
· Keys.CONTROL,”a”:组合键,Ctrl + A
· Keys.CONTROL,”x”:组合键,Ctrl + X
· Keys.CONTROL,”v”:组合键,Ctrl + V
· Keys.CONTROL,”c”:组合键,Ctrl + C
· Keys.F1:F1键
· Keys.F12:F12键
模拟键盘输入“python”:
driver.find_element_by_id("kw").send_keys("python.")
删除最后一个字符:
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
模拟键盘输入一个空格:
driver.find_element_by_id("kw").send_keys(Keys.SPACE)
模拟键盘输入“教程”:
driver.find_element_by_id("kw").send_keys("教程")
输入框全选:
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, "a")
剪切:
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, "x")
粘贴:
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, "v")
回车:
driver.find_element_by_id("kw").send_keys(Keys.ENTER)
在 Selenium WebDriver 中,有了 Actions 类和 Keys 枚举对键盘和鼠标的操作已经做的非常到位,如果有其他特殊场景再结合 python的PYAUTOGUI等库的使用,基本上可以满足工作中遇到的对鼠标键盘操作的应用了。
睿江云官网链接:https://www.eflycloud.com/home?from=RJ0032