最近尝试在写UI测试,登录验证采用滑动验证码进行验证。于是有了以下方案。
- 获取背景图
- 获取按钮图片
- 在背景图中查找与原图最相符的,返回位置
- 滑动滑块到缺口
- 校验是否通过
实际实施中遇到了以下问题:
- 图片对比后 返回的位置精度不够 成功率较低 --获取灰度图像后进行二值化(浅色图片成功率较低)
- 一次性滑动到位可能触发机器检测,及时位置对上了也会登录失败--generate_tracks方法根据拖动距离返回一个数组多次拖动
- 精度问题可能需要一次登录进行多次验证 --while True+ flag解决
参考链接:
import urllib
import urllib.request
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import W