找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1790|回复: 4

[已回复] FindMultiColor判断多了有时候找不到什么情况啊

[复制链接]

7

主题

9

回帖

23

积分

学前班

鲜花
0
猫粮
63
发表于 2023-3-26 20:53:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 humailhu 于 2023-3-26 22:36 编辑

为何会不找 或者找不到 拿出单独测试 正常 放到下级就不行了
到    输入账号 后面 If zm.FindMultiColor(密码输入框,mi密码输入框,5000) Then  这句 就找不到 有输出,没有找到
经常遇见这种有时候 整个判断都不找 就是没有输出找到没有找到 都应该有输出 但是,偶尔会出现没有输出情况  
下面是代码 :
     If 账号页面()=True Then
            t = TickCount()
            TracePrint 当前应用包名()
            If zm.FindMultiColor(234,1089,566,1218,登录其他账号,300) Then
                范围点击 IXYs(1), IXYs(2), IXYs(1) + 40, IXYs(2) + 30
                Delay 200
            Else
                TracePrint "没有找到登录其他账号"
                i = i + 1
                If i > 3 Then
                    回桌面
                    zm.FindMultiColorTap (15,1681,1071,1902,我的账号, 0.9)
                    i=0
                End If
            End If
            If zm.FindMultiColor(321,880,757,1111,账号密码登录,300) Then
                范围点击 IXYs(1), IXYs(2), IXYs(1) + 40, IXYs(2) + 30
                Delay 200
            Else
                TracePrint "没有找到账号密码登录"
            End If
            If zm.ElementFind("正在获取设备安全信息…") Then
                TracePrint "正在获取设备安全信息"  : rem pi : 百度 = URL.Get("https://www.baidu.com/") : 必应 = URL.Get("https://cn.bing.com/")
                           
                           If 百度 <> null and 百度 <> "" and 必应 <> null and 必应 <> "" Then
                                   traceprint "网络已连接"
                           Else
                                   Delay 1000 : traceprint "延时1秒,重新获取"
                                   Goto pi
                           End If
                安全信息=安全信息+1 : if 安全信息 > 50 then: KillApp "com.xiaomi.account": Delay 500 : RunApp "com.xiaomi.account" : End If
            End If
            If zm.FindMultiColor(重试) Then
                TracePrint "找到网络连接错误,无法连接到网络请点击重试  重试"
                范围点击 IXYs(1), IXYs(2), IXYs(1) + 40, IXYs(2) + 30
                Delay 200
            End If
            If zm.FindMultiColor(69,215,1024,656,一个账号玩转云服务) and zm.FindMultiColor(69,215,1024,656,"707070","-14|4|686868,17|5|6E6E6E,14|13|585858,12|18|7A7A7A,9|22|8D8D8D,-16|31|585858") or zm.FindMultiColor(69,215,1024,656,mi图标) Then
                TracePrint "找到 一个账号玩转所有云服务 和 忘记密码"
                TracePrint "账号有" & 行数 & "个账号," & "开始登录第" & 行 + 1 & "个账号 = "&账号,"密码 = "&密码 :  ShowMessage "账号文件中总共有" & 行数 & "个账号," & "\n" & "现在开始登录第" & 行 + 1 & "个账号.",1000,413,62
                Dim 账号输入框 ={"B4B4B4","-333|16|B4B4B4,-333|119|B4B4B4,-329|120|B8B8B8,-333|125|B4B4B4,-257|240|B4B4B4,-103|0|B4B4B4,-171|0|B4B4B4"}
                If zm.FindMultiColor(账号输入框,输入框) Then
                    TracePrint "找到账号输入框坐标是",IXYs(1),IXYs(2)
                    行 = File.Read(path2)
                    读取账号 path1, CInt(行)
                    输入账号
                    If zm.FindMultiColor(密码输入框,mi密码输入框,5000) Then
                        TracePrint "找到了密码输入框",IXYs(1),IXYs(2) :x=IXYs(1) : y=IXYs(2)
                        范围点击 IXYs(1) + 500, IXYs(2) + 10, IXYs(1) + H(500,600), IXYs(2) + H(20,50)
                        Do
                            If zm.FindMultiColor(请输入密码,mi密码输入框) Then
                                InputText 密码
                                Exit Do
                            Else
                                do While zm.FindMultiColor(请输入密码,mi密码输入框)=False
                                    范围点击 x+500,y+10,x+H(500,600),y+H(30,50)
                                    KeyDown 59 :KeyDown 60
                                    KeyPress 19
                                    KeyUp 59 : KeyUp 60
                                    Delay 50
                                    KeyPress "del"
                                Loop
                            End If
                        Loop
                    Else
                        TracePrint "没有找到密码输入框"
                    End If
                    Exit Do
                Else
                    i = i + 1
                    TracePrint "没有找到账号输入框"
                    If i > 20 Then
                        i=0
                        后退
                    End If
                End If        
                TracePrint TickCount ()-t
            Else
                TracePrint "没有找到一个账号玩转云服务 或者,忘记密码"
                i = i + 1
                If i> 10 Then
                    i = 0
                    // 关闭应用  "com.xiaomi.account"
                End If
                If zm.FindMultiColor(278,1485,746,1895,"FEB349","1|10|FBC273,-3|32|FCBB61,31|27|FCBD65,34|31|FDB652,46|5|FBC06E,44|31|FDB857,63|29|FFAC37")  Then
                    TracePrint "找到  网络连接错误  坐标= ", IXYs(1), IXYs(2)
                    范围点击 IXYs(1), IXYs(2), IXYs(1) + 50, IXYs(2) + 30
                End If
                If  zm.FindMultiColor(237,1159,780,1853,找色_退出登录) or zm.FindMultiColor(64,1461,475,1612,请输入账号密码) Then
                    TracePrint "找到退出登录,开始执行退出账号"
                    退出登录
                    If 当前账号 = 0 Then
                        If Dir.Exist(path61)=1 Then
                            TracePrint "移动数据网络 存在 执行飞行模式更换ip"
                            更换ip
                        Else
                            TracePrint "移动数据网络 不存在,执行进入猫里更换ip"
                            移动网络
                        End If
                    End If
                    当前账号 = 0
                End If
            End if
        Else
            TracePrint "执行 回桌面 "
            回桌面
            zm.FindMultiColorTap (15,1681,1071,1902,我的账号, 0.9)
            If MyFindColor(云服务) Then
                后退
            End If
        End If               
    Loop

TracePrint "找到账号输入框坐标是",IXYs(1),IXYs(2)
TracePrint "没有找到密码输入框"   
输出这个  就是这个没有找到 我放上面找一下就找到了 放这里找不到
不会发图啊  



楼主热帖
  • 打卡等级:无名新人

5

主题

38

回帖

53

积分

按键电脑班学员

鲜花
0
猫粮
1130
发表于 2023-3-26 21:44:30 | 显示全部楼层
记着贴个输出,加截图。。这么看很累

7

主题

9

回帖

23

积分

学前班

鲜花
0
猫粮
63
 楼主| 发表于 2023-3-26 23:18:27 | 显示全部楼层
本帖最后由 humailhu 于 2023-3-26 23:35 编辑

这个是 一个 do 循环里面 一个判断下面 在一个判断 在下级判断找不到了 如果放上面就能找到
这个是在函数里面的
1233           If zm.FindMultiColor(请输入密码,mi密码输入框,1000) Then
1234                      TracePrint "找到了密码输入框",IXYs(1),IXYs(2) :x=IXYs(1) : y=IXYs(2)
1235           Else
1236                       TracePrint "没有找到密码输入框"
1237          End If
1238          If zm.FindMultiColor(mi密码输入框1,请输入密码,1000) Then
1239                        TracePrint "找到了密码输入框",IXYs(1),IXYs(2) :x=IXYs(1) : y=IXYs(2)
1240           Else
1241                        TracePrint "没有找到密码输入框"
1242            End If
1243            If zm.FindMultiColor(mi密码输入框,1000) Then
1244                        TracePrint "找到了密码输入框",IXYs(1),IXYs(2) :x=IXYs(1) : y=IXYs(2)
1245            Else
1246                        TracePrint "没有找到密码输入框"
1247           End If
当前脚本第1236行:没有找到密码输入框
当前脚本第1239行:找到了密码输入框 -1 -1
当前脚本第1244行:找到了密码输入框 286 793
很奇怪  第一个 找不到  第二个 我把两个 变量 换了位置找到 了  但是 返回-1  单独 一个可以找到
再次测试 放脚本上面

        dim 请输入密码 = Array(16, 350, 1044, 705, "B2B2B2","10|0|B0B0B0,10|4|C0C0C0,9|11|B0B0B0,9|18|B0B0B0,29|25|C3C3C3,37|25|BBBBBB")
        Dim 密码输入框1={"D1D1D1","294|-395|1375F9,215|-323|1375F9,277|-376|86B9FC,263|-345|539BFB,249|-345|3F8FFA,234|-345|D2E4FE"}
72    If zm.FindMultiColor(请输入密码,1000) or zm.FindMultiColor(密码输入框1,1000) Then
73       TracePrint "找到了密码输入框",IXYs(1),IXYs(2) :x=IXYs(1) : y=IXYs(2)
74    Else
75        TracePrint "没有找到密码输入框"
76    End If
77    If zm.FindMultiColor(请输入密码,密码输入框1,1000) Then
78        TracePrint "找到了密码输入框",IXYs(1),IXYs(2) :x=IXYs(1) : y=IXYs(2)
79    Else
80        TracePrint "没有找到密码输入框"
81    End If
82    If zm.FindMultiColor(密码输入框1,请输入密码,1000) Then
83        TracePrint "找到了密码输入框",IXYs(1),IXYs(2) :x=IXYs(1) : y=IXYs(2)
84    Else
85        TracePrint "没有找到密码输入框"
86    End If
87    If zm.FindMultiColor(密码输入框1,1000) Then
88       TracePrint "找到了密码输入框",IXYs(1),IXYs(2) :x=IXYs(1) : y=IXYs(2)
89    Else
90        TracePrint "没有找到密码输入框"
91    End If
当前脚本第73行:找到了密码输入框 286 793
当前脚本第80行:没有找到密码输入框
当前脚本第83行:找到了密码输入框 -1 -1
当前脚本第88行:找到了密码输入框 286 793


  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7413
QQ
发表于 2023-3-27 10:23:24 | 显示全部楼层
找图找色找字比色等图色命令失败的解决思路
https://zimaoxy.com/b/t-1151-1-1.html
(出处: 紫猫学院社区)
可以参考这个分析原因

7

主题

9

回帖

23

积分

学前班

鲜花
0
猫粮
63
 楼主| 发表于 2023-3-27 12:21:54 | 显示全部楼层
我把这个变量1 请输入密码 和变量2 密码输入框1 用判断 if 变量2  or 变量2  可以找到
而我用 If zm.FindMultiColor(请输入密码,密码输入框1,1000) Then 这样找不到 ,
我把 这两个位置对调 可以找到 但是返回坐标是-1
单独测试 可以找到
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-11-21 21:50

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表