找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 766|回复: 7

[求助] zm.ElementFind单独调用可以找到元素,2次就不行,紫猫老师帮帮忙

[复制链接]
  • 打卡等级:初涉江湖

2

主题

10

回帖

14

积分

学前班

鲜花
0
猫粮
19
发表于 2024-1-25 15:07:26 | 显示全部楼层 |阅读模式

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

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

×
Dim 标记=False
更换VPN("新疆", 2)
TracePrint 标记
标记=False
打开VPN
TracePrint 标记
Function 打开VPN()
    If Sys.isRunning("com.fvcorp.android.aijiasuclient")=True Then
        KillApp ("com.fvcorp.android.aijiasuclient")
        Delay 1500
        打开VPN
        Exit Function
    Else
        RunApp "com.fvcorp.android.aijiasuclient"
        Delay 5000
        Dim 元素数组 = zm.ElementFind("当前服务器:","com.fvcorp.android.aijiasuclient:id/textSelectedServer","android.widget.TextView","com.fvcorp.android.aijiasuclient")
        If 元素数组 Then
            zm.Tap 元素数组["x"], 元素数组["y"]
            Delay 3000
            更换VPN("新疆", 2)
            Exit Function
        Else
            打开VPN
            Exit Function
        End If
    End If
       
End Function


Function 更换VPN(地名, 次数)
    Dim 返回数组()
    If zm.FindColor(44, 418, 51, 432, "CECECE", 返回数组) Then
        zm.Tap 返回数组["x"], 返回数组["y"]
    End If
    Dim 元素数组 = zm.ElementFind("^"&地名&".*", -2)
    If 元素数组 Then
        标记 = True
        Exit Function
    Else
        次数 = 次数 - 1
        If 次数 < 0 Then  Exit Function
        zm.Swipe (525,1874,820,350,800)
        更换VPN 地名, 次数
        Exit Function
    End If
End Function

楼主热帖
  • 打卡等级:初涉江湖

2

主题

10

回帖

14

积分

学前班

鲜花
0
猫粮
19
 楼主| 发表于 2024-1-25 15:08:03 | 显示全部楼层
运行结果:true,false
  • 打卡等级:初涉江湖

2

主题

10

回帖

14

积分

学前班

鲜花
0
猫粮
19
 楼主| 发表于 2024-1-25 15:27:15 | 显示全部楼层
测试了很多次,只用调用过一次这个zm.ElementFind,第二次就找不到。
  • 打卡等级:初涉江湖

2

主题

10

回帖

14

积分

学前班

鲜花
0
猫粮
19
 楼主| 发表于 2024-1-25 15:33:59 | 显示全部楼层
是不是同一个APP,点击后打开新UI界面,就无法找到新元素吗?
  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7413
QQ
发表于 2024-1-25 20:01:10 | 显示全部楼层
这个命令是通过Element.GetAllInJson()获取数据后处理得到的, 你可以测试这个接口是否正常获取到数据
  • 打卡等级:初涉江湖

2

主题

10

回帖

14

积分

学前班

鲜花
0
猫粮
19
 楼主| 发表于 2024-1-26 17:25:46 | 显示全部楼层
紫猫 发表于 2024-1-25 20:01
这个命令是通过Element.GetAllInJson()获取数据后处理得到的, 你可以测试这个接口是否正常获取到数据 ...

感谢紫猫老师,我现在就是返回到桌面,调用zm.ElementFind一次,然后再打开APP,就可以再次zm.ElementFind,同一APP换了新界面是无法再次查找元素。
  • 打卡等级:无名新人

0

主题

3

回帖

3

积分

学前班

鲜花
0
猫粮
1
发表于 2024-4-19 14:48:32 | 显示全部楼层
我也是这种问题
  • 打卡等级:无名新人

0

主题

1

回帖

1

积分

学前班

鲜花
0
猫粮
0
发表于 2024-4-26 00:53:47 | 显示全部楼层
紫猫 发表于 2024-1-25 20:01
这个命令是通过Element.GetAllInJson()获取数据后处理得到的, 你可以测试这个接口是否正常获取到数据 ...

我也是这样 ,如果写一个循环抓取界面元素的脚本,打开微信小程序的瞬间就抓不到任何元素,此时用抓抓也抓不到,只有重启脚本才可以重新抓得到,这个脚本运行有什么关系吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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