还未发布过话题
  • 没事,我也是早上没事写点片段热热身,能解决您的问题真是极好的。

  • 格式怪怪的,如果没有特殊需求的话,建议直接用 json 库转,格式有略微不同的话,稍微调整下格式再转。
    自己随便写了点转换的代码,不敢写下去了,再写就要造一个 json 库轮子了。。

    import json
    
    text = "Lindar = \"text=light, position = True\", num=10, check_condition=False, Timeout=1000"
    
    
    def split_text(text: str) -> list[str]:
        start = 0
        pieces = []
        is_in_string = False
    
        for index, char in enumerate(text):
            if char == "\"":
                is_in_string = not is_in_string
            if char == "," and not is_in_string:
                pieces.append(text[start:index])
                start = index + 1
        # 添加最后一段
        pieces.append(text[start:])
        return pieces
    
    
    def combine_key_value(pieces: list[str]) -> dict:
        pairs = {}
        for piece in pieces:
            for index, char in enumerate(piece):
                if char == "=":
                    key = piece[:index]
                    value = piece[index + 1:]
                    key = key.strip()
                    value = value.strip()
                    pairs[key] = value
                    break
        return pairs
    
    
    def type_convert(text):
        pass
    
    
    pieces = split_text(text)
    pairs = combine_key_value(pieces)
    print(json.dumps(pairs))
    
    
  • 你想知道的是 max_loc...这几个参数是什么意思吧
    这个是模板匹配方法,用小图在大图里面匹配最佳位置
    loc 是 location,表示坐标,max_loc 是最佳匹配坐标,min_loc 是最不匹配坐标
    val 是 value,也表示图片匹配度 (置信度),范围是 0~1,越接近 1 说明匹配度越高,这里最大是 1,也就是匹配出近似原图

    你得到的返回值样式和参考样本区别不大的,取 max_loc 就行,前提是 max_val 至少大于 0.8,另外需要注意的是模板匹配得到的坐标是图片左上角的点,不是图片中心点,点击的时候需要注意一下。

    随便贴一个模板匹配的帖子 => https://zhuanlan.zhihu.com/p/106906613
    如果真要使用图像处理的方式来做 UI 自动化,建议先掌握 python 的 PIL 和 opencv

  • 用自己最擅长的语言吧,不然会耗费很多时间在熟悉语言进阶知识、理解三方库和框架上。个人更偏向于 python,实现同样的功能,可以做到少一半代码且更简洁易懂,也更灵活。

    1. 你把二值化后多余的背景剪掉再试试看能不能识别,有可能不是字库不好,而是背景太大,ocr 没有识别出对应的文字区域。先确定 pytesseract 能否识别你的样本再来思考后面的问题。
    2. 能否讲一下做 ocr 的目的是什么?识别控件,点击或者断言?通常很少有做全屏 OCR 的场景,有可能有其他更简单的方法达到你的目的。
  • 啊喂,类里面的函数叫方法,init里面的变量叫实例属性>_<

  • 关于 H5 测试的问题求助 at 2021年10月15日

    是我的话可能会这样去做:

    1. 确保出现过的问题不会再次出现,记录 bug 清单,尽量做成自动化,工作量不算多的
    2. 主流程回归,同样尽量自动化吧
    3. 代码 review,每次测试花一点时间看开发的代码,不说每一段代码都能看懂、看出问题,至少要对整体的技术方案、影响到的页面、组件、接口等等有所了解,合理的技术方案一般代码看起来结构都是很清晰的,让人困惑的地方往往是 bug 所在的地方。
    1. 上面的图片简单,识别不了多半是背景太花哨,用二值化就可以搞定。文字是接近纯白,用二值化可以把图片处理成背景纯黑,文字纯白的图片,可以参考下面的文章
      https://blog.csdn.net/bosszhao20190517/article/details/105837566

    2. 开放平台是指百度云、腾讯云等免费的 OCR 识别 api,一样的调接口,传入图片,然后识别结果,因为基于深度学习,数据集比 pytesserct 大,且是国内环境,中文支持更强,效果会更好一点

    3. 看你具体是要做什么操作,如果是找控件、点击之类的自动化操作,可以了解下模板匹配、airtest 之类的

  • 能贴一下识别的图么,一般正常字是没什么问题的,识别不了的话可以调调 pytesseract 的配置参数或者对图片做预处理 (二值化、降噪等等)
    另外要看具体使用场景,看是否需要使用 OCR,有可能其他的方式也能做
    另外还有其他 AI 开放平台的 api 可以用,识别中文应该比 pytesseract 更好一些

  • 是 bug,既然前端都做了删除禁用,业务逻辑上当然是不能删除订单的,后端也要保持一致,只是后端没有去做这样的校验而已。健康的系统是必须前后端都做好校验的,可以反馈给开发,看他改不改,正常来说改一下也没有多大难度。如果是内部使用的工具,他也不想改,风险可控的话,可以抛出来让研发组长之类的人去做决定,看是否需要修复。