IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> selenium-滑动验证码实现 -> 正文阅读

[开发测试]selenium-滑动验证码实现

selenium-滑动验证码实现

滑动验证码的实现

    def move_code(self,loc1,loc2,loc3):
        '''滑动滑块验证码
        loc1 = 滑块图片的元素定位
        loc2 = 背景图片的元素定位
        loc3 = 滑动按钮的元素定位
        脚本位置是在Testcase/Test***/test_**.py
        '''

        n = 1
        while True:
            # 定位图片的位置
            # 获取元素属性
            front_img_src = self.get_element_null(loc1)
            bg_img_scr = self.get_element_null(loc2)
            time.sleep(1)
            front_img_src = front_img_src.get_attribute('src')
            bg_img_scr = bg_img_scr.get_attribute('src')
            # 判断文件夹是否存在不存在则创建'
            os.makedirs('../../outputs/image/', exist_ok=True)
            # 下载滑块和背景图
            urllib.request.urlretrieve(front_img_src, '../../outputs/image/bkBlock.png')
            urllib.request.urlretrieve(bg_img_scr, '../../outputs/image/slideBlock.png')
            # 读取图片
            front = cv2.imread('../../outputs/image/slideBlock.png')
            bg = cv2.imread('../../outputs/image/bkBlock.png')
            # 对图片进行灰度处理
            front = cv2.cvtColor(front, cv2.COLOR_BGR2GRAY)
            bg = cv2.cvtColor(bg, cv2.COLOR_BGR2GRAY)
            # 去掉滑块黑色部分
            front = front[front.any(1)]  # 0表示黑色,1表示高亮部分
            # 匹配->cv图像匹配算法,匹配出划片图片在背景图的位置
            result = cv2.matchTemplate(bg, front, cv2.TM_CCORR_NORMED)  # match匹配,Template模板;精度高,速度慢的方法
            index_max = np.argmax(result)  # 返回的是一维的位置,最大值索引,作为匹配的横向坐标X
            # 反着推最大值的二维位置,和opencv是相反的
            x, y = np.unravel_index(index_max, result.shape)
            # 移动滑动按钮
            drop = self.get_element_null(loc3) #查找到元素locator
            try:
                action = ActionChains(self.driver)
                # 鼠标左键按下不放
                action.click_and_hold(drop).perform()
                # 平行移动大于解锁的长度的距离
                action.drag_and_drop_by_offset(drop, xoffset=y + 10, yoffset=0).perform()
                time.sleep(1)
                # 通过当前滑块图片是否存在判断是否跳出循环
                self.get_element_null(loc1).is_displayed()
                print('第%s次进行滑动验证码校验' % n, '\n')
                n = n + 1
                time.sleep(1)
            except:
                break
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 16:15:41  更:2021-12-14 16:16:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 7:48:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码