美文网首页
利用图片识别解决密码控件问题

利用图片识别解决密码控件问题

作者: yytester | 来源:发表于2019-05-21 15:21 被阅读0次

在Appium操作时弹出普通窗口以及输入密码时的随机软键盘,由于焦点没有切换过来,或者整个软键盘是一个整体,导致无法直接通过id,xpath定位,这个时候只能利用图片识别来解决问题.


思路:
1. 保存要识别的图片A
2. App运行时,到了目标页面,截屏 self.driver.get_screenshot_as_file('/Users/xxx/test/jianpan.jpg')
3. 对比,寻找图片A的坐标
4. 点击


操作:

  1. 安装opencv库 pip3 install opencv-python
  2. 方法代码如下:

import cv2
import numpy as np
import time

def get_pay_keyboard_number_location(self,impath, target,fit_num): #fit_num是匹配度,如 0.95,0.85

        print("start find pic")
        positions = {}

        start = time.time()
        img_rgb = cv2.imread(impath)

        teNum = "done"

        template = cv2.imread(target)
        h, w = template.shape[:-1]

        res = cv2.matchTemplate(img_rgb, template, cv2.TM_CCOEFF_NORMED)
      
        threshold = fit_num  # 匹配度参数,1为完全匹配
        loc = np.where(res >= threshold)
        if len(loc) > 0:
            # positions[teNum] = zip(*loc[::-1])[0]  # python2的写法
            print("找到了匹配图")
            zipped = zip(*loc[::-1])  #list[::-1] 相当于起点为最后的一个,终点为第一个,然后一次减少一个
            positions[teNum] = (list(zipped))[0]
            
        else:
            print("Can not found pic: ")

        end = time.time()
        print(end - start)

        return positions[teNum]  
  1. 调用代码:
        impath1 = "/Users/xxx/2019work/eebank/pic/jianpan1.png"
        targetPath_a = "/Users/xxx/2019work/eebank/pic/a.png"

        ls = self.get_pay_keyboard_number_location(impath1, targetPath_a,0.85) #在键盘图片找到字母a
        # ls = (62,1046) 这样的数组
     
        dd = ls[0]
        kk = ls[1]
        m = (dd/2, kk / 2)
        #点击
        self.driver.tap([m],20)

相关文章

  • 利用图片识别解决密码控件问题

    在Appium操作时弹出普通窗口以及输入密码时的随机软键盘,由于焦点没有切换过来,或者整个软键盘是一个整体,导致无...

  • 人脸识别

    One-Shot 学习 在人脸识别的任务中,首要解决的问题就是仅仅需要一张图片或者一个样本实现识别,而利用神经网络...

  • 弹出来的提示界面

    利用控件Tap gesture 和 UIAlertView + UIActionSheet 手势识别器 单击 双...

  • ZXing二维码识别优化

    问题:二维码识别,如果图片中二维码太小就识别不出来解决方案: 同比例缩小图片,图片缩小后干扰图像变得模糊,增加识别...

  • 2018-11-07

    Android 加载长图片的自定义控件!解决安卓加载长图出现解码失败导致显示空白的问题! 关于解决超大图片超过bi...

  • iOS 自定义下拉刷新控件 —— 解决图片拉伸与数据刷新冲突

    iOS 自定义下拉刷新控件 —— 解决图片拉伸与数据刷新冲突 iOS 自定义下拉刷新控件 —— 解决图片拉伸与数据...

  • tensorflow2识别猫与狗

    问题 现在有很多的图片,里面分别有猫与狗,识别这些图片,区分猫与狗 设计解决这个问题的思路 [1]图片地址 htt...

  • IOS -- cell解决重用机制

    类似微博自定义cell添加图片,通常会导致图片重用 解决方法:手动懒加载图片控件,然后在加载图片之前先清除图片控件...

  • 1226 - 搞定 iText 连续识别

    先上图: 主要要解决的是此类问题:比如,有时会需要识别 PDF 这种排版复杂的「图片」,如果直接把整张图拿去识别,...

  • Glide加载图片,同一url更换图片不更新的问题

    在每次加载到控件之前清除缓存也无法解决问题,并且会导致加载缓慢的问题 解决方法在更新图片重新加载的时候设置disk...

网友评论

      本文标题:利用图片识别解决密码控件问题

      本文链接:https://www.haomeiwen.com/subject/yqarzqtx.html