Selenium鼠标操作事件

2019-10-21 16:51:36 浏览数 (1)

写在前面

日常的UI自动化测试活动中,有时候会用到鼠标操作事件。Selenium WebDriver 给我们提供了一个类来处理这类事件:ActionChains。 ActionChains 类提供了鼠标操作的常用方法:

  • perform():执行所有 ActionChains 中存储的行为;
  • click():左键单击
  • context_click():右键双击;
  • double_click():双击;
  • drag_and_drop():拖动;
  • move_to_element():鼠标悬停;
  • click_and_hold ():左键按下不释放;
  • release ():释放按住的鼠标按钮 。

注意:以上方法需要调用ActionChains()类,将浏览器驱动driver元素elment作为参数传入。例如双击:

ActionChains(driver).double_click(elment)

鼠标事件示例

接下来,针对百度主页模拟鼠标悬停操作。代码如下所示:

代码语言:javascript复制
#coding=utf-8
#www.testclass.cn
#Altumn
import time
from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsdriver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(10)
driver.get('https://www.baidu.com')

#首先定位到要悬停的元素;
element = driver.find_element_by_link_text("设置")

#对定位到的元素执行鼠标悬停操作;
ActionChains(driver).move_to_element(element).perform()

#等待两秒,为了展示鼠标悬停效果;
time.sleep(2)

#弹出的Ajax,单击'高级搜索';
driver.find_element_by_link_text('高级搜索').click()

小结一下

Selenium WebDriver关于鼠标的处理事件,处理一般为以下几个处理步骤:

  • 导入提供鼠标操作的 ActionChains 类:

from selenium.webdriver import ActionChains

  • 定位到要进行鼠标操作的元素(元素定位方式不限):

element=driver.find_element_by_link_text(“设置”)

  • 调用 ActionChains()类,将浏览器驱动 driver 作为参数传入,并且将要执行的动作传到元素上:

action=ActionChains(driver).move_to_element(element)

  • 执行 ActionChains 中存储的行为action,可就是对操作事件的提交动作:

action.perform()

0 人点赞