python自动化测试——操作测试对象(二)

本文深入探讨Selenium中ActionChains类的鼠标操作及Keys类的键盘操作,包括右击、双击、拖动、全选、复制、粘贴等功能,通过具体代码示例展示如何在自动化测试中应用这些高级功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 前言

         在操作测试对象(一)中,总结了一部分selenium的基础函数,这次继续介绍一些常用的基础函数。

         我们经常会用click()来模拟鼠标的单击操作,但在自动化测试的开发过程中,不仅仅只用到单击,还有右击,双击,拖动等操作,这些操作都包含在ActionChains类中,只要我们对ActionChains这个类熟悉之后,就可以很快的应用到自动化脚本编写之中。

          除了鼠标操作之外,我们还会经常用到键盘操作,webdriver中提供了Keys()类,用于模拟键盘操作和一些组合键操作,如Ctrl+A,Ctrl+C,Ctrl+V等。

2. 基础操作函数

2.1 鼠标事件函数

鼠标事件函数不单单只有click,还包含右击、双击、拖动等操作,ActionChains类鼠标操作的常用方法:

#右击
context_click()
#双击
double_click()
#拖动
drag_and_drop()
#鼠标悬停在一个元素上
move_to_element()
#按下鼠标左键在一个元素上
click_and_hold()

2.2 键盘操作函数

下面是一些经常使用到的键盘操作函数:

#删除键(BackSpace)
send_keys(Keys.BACK_SPACE)
#空格键(Space)
send_keys(Keys.SPACE)
#制表键(Tab)
send_keys(Keys.TAB)
#回退键(Esc)
send_keys(Keys.ESCAPE)
#回车键(Enter)
send_keys(Keys.ENTER)
#全选(Ctrl+A)
send_keys(Keys.CONTROL,'a')
#复制(Ctrl+C)
send_keys(Keys.CONTROL,'c')
#粘贴(Ctrl+v)
send_keys(Keys.CONTROL,'v')

3. 函数举例

3.1 鼠标事件操作

#coding=utf-8
#引入ActionChains类
from selenium.webdriver.common.action_chains import ActionChains
#定位元素
right=driver.find_element_by_xpath("xx")
#对定位到的元素执行鼠标右键操作
ActionChains(driver).context_click(right).perform()
#定位元素
double=driver.find_element_by_xpath("xx")
#对定位到的元素执行鼠标双击操作
ActionChains(driver).double_click(double).perform()
#定位元素
above=driver.find_element_by_xpath("xxx")
#对定位到的元素执行鼠标移动到上面的操作
ActionChains(driver).move_to_element(above).perform()
#定位元素
left=driver.find_element_by_xpath("xxx")
#对定位到的元素执行鼠标左键按下的操作
ActionChains(driver).click_and_hold(left).perform()
#定位元素的原位置
first=driver.find_element_by_name("xxx")
#定位元素要移动到的目标位置
target=driver.find_element_by_name("xxx")
#执行元素的移动操作
ActionChains(driver).drag_and_drop(first,target).perform()

3.2 键盘事件操作

#coding=utf-8
from selenium import  webdriver
#引入Keys类包
from selenium.webdriver.common.keys import Keys
from time import sleep

#输入框输入内容nick
driver.find_element_by_id("zn").send_keys("nick")
#删除nick最后一次字母k
driver.find_element_by_id("zn").send_keys(Keys.BACK_SPACE)
#输入空格键和“中文”
driver.find_element_by_id("zn").send_keys(Keys.SPACE)
driver.find_element_by_id("zn").send_keys(u"中文")
#ctrl+a全选输入框内容
driver.find_element_by_id("zn").send_keys(Keys.CONTROL,'a')
#ctrl+x剪切输入框内容
driver.find_element_by_id("zn").send_keys(Keys.CONTROL,'x')
#ctrl+v粘贴复制的内容到输入框
driver.find_element_by_id("zn").send_keys(Keys.CONTROL,'v')
#按下回车键
driver.find_element_by_id("submit").send_keys(Keys.ENTER)
#退出浏览器
driver.quit()

总结

        在自动化编写过程中,除了元素定位之外,对于鼠标事件和键盘事件的处理也是比较重要的。当熟悉了这些基础函数之后,可以参考官方API文档,里面还有更多关于函数的介绍。

 

 

 

 

 


欢迎关注「技术分享交流」公众号 ,在公众号里会不定期更新干货内容,欢迎您的加入!

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值