云服务器

selenium鼠标键盘事件

2019-12-05 10:59:36 64

从之前的几篇文章对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

下一篇: 无

微信关注

获取更多技术咨询