Web自动化测试实战5—鼠标操作

  在前面我们已经学习过用click()来模拟鼠标的单击操作,而在实际的web产品测试中发现,关于鼠标的操作,不是只有单击,有时候还有右击,双击,拖放等操作,这些操作包含在ActionChains类中。
ActionChains类鼠标操作的常用方法

  • perform() 执行所有ActionChains中存储的行为
  • context_click() 右击
  • double_click() 双击
  • drag_and_drop() 拖放
1.右击操作

context_click()方法用于模拟鼠标双右击操作。
举例:在百度首页,鼠标右键点击百度Logo。

  1. 启动浏览器
  2. 打开百度首页,https://www.baidu.com
  3. 定位百度Logo,xpath表达式为:.//*[@id=‘lg’]/map/area
  4. 执行右击操作,查看是否右击成功
  5. 退出浏览器,结束测试

有两种实现右击的方法:
第一种:
ActionChains(driver).context_click(element).perform()
第二种:ActionChains(driver).context_click(element).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

driver=webdriver.Chrome()
driver.maximize_window()

driver.get("https://www.baidu.com")
sleep(2)

#定位到要右击的百度logo元素
element=driver.find_element_by_xpath(".//*[@id='lg']/map/area")
try:
	#方法一
	ActionChains(driver).context_click(element).perform()
	#方法二
	#ActionChains(driver).context_click(element).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()
	print("右击成功!")
except Exception as e:
	print("test fail.",format(e))
sleep(15)

driver.quit()

代码解析:
1)from selenium.webdriver.common.action_chains import ActionChains
  导入提供鼠标操作的ActionChains类。
2)ActionChains(driver)
  调用ActionChains类,要将浏览器驱动driver作为参数传入
3)context_cilick(element)
  context_click()方法用于模拟鼠标右键操作,在调用时需要指定元素定位
4)perform()
  执行所有ActionChains中存储的行为,可以理解成是对整个操作的提交动作

2.双击操作

double_click()方法用于模拟鼠标双击操作。

#定位元素
double_click=driver.find_element_by_id('xxx')
 
#对定位元素执行双击操作
ActionChains(driver).double_click(double_click).perform()
3.拖放操作

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

#定位源元素
source=driver.find_element_by_id("xxx")
#定位目标元素
target=driver.find_element_by_id("xxx")
 
#执行拖放操作
ActionChains(driver).drag_and_drop(element,target).perform()

  本章主要对鼠标操作进行了简单的介绍,执行鼠标操作时,浏览器建议不要使用火狐浏览器,实践证明:右键点击操作在火狐浏览器上不可行。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值