欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

selenium自动化测试(五)-- 鼠标事件

程序员文章站 2024-03-21 23:36:28
...

前言

通过前面的例子了解到,可以使用click()来模拟鼠标的单击事件,鼠标的右击、双击、悬停、以及鼠标拖动等功能,封装在ActionChains类

  • perform() 执行所有ActionChains中存储的行为
  • context_click() 右击
  • double_click() 双击
  • drag_and_drop() 拖动
  • move_to_element() 鼠标悬停

鼠标右击操作

from selenium import webdriver
from selenium.webdriver import ActionChains


driver = webdriver.Chrome()
driver.get('https://www.baidu.com')

# 定位百度输入框然后右击
right_click = driver.find_element_by_id('kw')
ActionChains(driver).context_click(right_click).perform()

ActionChains(driver) 调用ActionChains()将浏览器驱动driver作为参数传入
context_click(right_click) 模拟右键操作,调用时需要指定元素定位
perform() 执行所有ActionChains中存储的行为,可以理解成对整个操作的提交动作

鼠标悬停

鼠标悬停弹出下拉菜单是一个十分常见的设计,比如:
selenium自动化测试(五)-- 鼠标事件

from selenium import webdriver
from selenium.webdriver import ActionChains
import time

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
time.sleep(2)

# 鼠标悬停在设置栏
above = driver.find_element_by_xpath('//*[@id="s-usersetting-top"]')
ActionChains(driver).move_to_element(above).perform()

# 点击下拉菜单的搜索设置
driver.find_element_by_link_text('搜索设置').click()

鼠标双击操作

# 定位到要双击的元素
double_click = driver.find_element_by_id('xxx')
# 对定位到的元素执行双击操作
ActionChains(driver).double_click(double_click).perform()

鼠标拖放操作

drag_and_drop(source, target)在源元素上按住鼠标左键,然后移动到目标元素上释放

  • source:鼠标拖动的源元素
  • target:鼠标释放的目标元素
# 定位元素的原位置
element = driver.find_element_by_id('xxx')
# 定位元素要移动的目标位置
target = driver.find_element_by_id('xxx')

# 执行元素拖放操作
ActionChains(driver).drag_and_drop(element, target).perform()
相关标签: selenium