软件测试-web端自动化测试-selenium的鼠标操作(滑块验证为例)

记录学习笔记

如果对同一个地址进行操作,xpath过于长,又需要对同一个元素反复操作的情况下,可以使用selenium自带的ActionChains库。

ActionChains库是在刚打开的浏览器什么执行鼠标操作。

1、代码导包

from selenium.webdriver import ActionChains

2、用法

创建一个ActionChains对象,把刚才的浏览器传进去,再整体赋给一个变量act,之后就可以直接对act进行操作。对自动化破解滑块验证码使用的是

按住 click_and_hold(滑块)

移动 move_by_offset(x轴移动距离,y轴移动距离)

距离数据可以使用QQ截图工具获取。这里找到了一个在线体验验证的网站进行测试。

# 找到滑块
ele=driver.find_element('xpath','//*[@id="app"]/div[1]/main/div[1]/div/div[3]/div/div/div/div[2]/div/div')
# 按住滑块
act=ActionChains(driver)
act.click_and_hold(ele)
# 移动滑块
act.move_by_offset(277,0)
#使鼠标操作生效
act.perform()

运行结束后,发现,程序确实成功运行了,但是由于我们需要看的滑块验证码再下一页,需要我们手动滚动鼠标才能看到页面,但是这样就成了半自动化,所有这样需要对页面进行滚动操作,确保我们可以看见效果。

这里使用的是:js代码滑动浏览器滚动条

代码:window.scrollTo(0, 397)  也就是把滚动条纵轴向下移动距离窗口397像素。

然后我们控制浏览器驱动js代码,即浏览器执行JavaScript代码。

driver.execute_script('window.scrollTo(0, 397)')

3、效果展示

鼠标操作-滑块验证

4、遗留问题

但是这也有一个问题,滑块验证每一次打开浏览器都会刷新,不能确保距离,也就是动态滑块如何解决?我网上查询发现,这需要通过图像处理技术提取验证码图像中的关键信息,再结合自动化测试工具模拟用户滑动行为来解决问题。需要按住两个库,明天试试网上的方法解决问题。

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值