折腾:
【记录】跑通运行代码:win中的app微信公众号采集
期间,已经能初始化appium的开发环境了。
看到有些地方提到,好像有个appium的UI,供调试界面的
搜:
appium mac 调试界面
找到
说是:点击放大镜

然后出现界面了:

但是点击 Start Session报错:
【已解决】Appium启动调试界面报错:Original error You must include a platformName capability
此处,先去保存参数:
再去Save as一下。避免每次重复输入
可以切换到:
Saved Capability Sets 2
中看到,现有的2个:

另外,删除第一个空的:



现在参数,应该没啥问题了。
再去:Start Session

要稍等片刻:

要加载好一会才可以
终于正常显示 appium的调试应用的GUI图形界面了:

即可正常的调试界面了:
然后就可以点击左边界面的内容,右边可以显示属性了:

剩下的就是调试业务逻辑了:
调试参数,写代码,确认逻辑是否正常。
如此,直到完成所有逻辑为止。
举例:
此处要去公众号搜索,第一步是,从微信主页中,点击第二个tab: 通讯录
所以要去找到 通讯录 tab,如何定位

拷贝出来属性值:
Attribute Value elementId 841715e3-36c3-440d-8301-a6f89e541773 index 1 package com.tencent.mm class android.widget.TextView text 通讯录 resource-id com.tencent.mm:id/dub checkable false checked false clickable false enabled true focusable false focused false long-clickable false password false scrollable false selected false bounds [357,2210][453,2254] displayed true
其中,可以用于定位的,一般是用:
- class:android.widget.TextView
- text:通讯录
- resource-id:com.tencent.mm:id/dub
写成代码,可以是:
driver.find_element_by_xpath("//android.widget.TextView[@resource-id='com.tencent.mm:id/dub']")
也可以是:
driver.find_element_by_xpath("//android.widget.TextView[@text='通讯录']")
此处是用了后者:
driver.find_element_by_xpath("//android.widget.TextView[@text='通讯录']").click()

然后可以切换到:通讯录界面了:

即可。
【总结】
Mac中,用Appium的界面调试工具去调试安卓手机端的界面的过程是:
在Appium的桌面客户端中,点击 放大镜🔍,启动参数配置界面

点击 JSON Representation的编辑按钮,输入Capability的json配置
此处是:
{ "platformName": "Android", "deviceName": "crifan Redmi10X", "udid": "orga4pmzee4ts47t", "appPackage": "com.tencent.mm", "appActivity": ".ui.LauncherUI", "noReset": true }
点击Save,自动保存和解析出相关参数:

点击 Start Session,(稍等片刻)即可启动调试界面
然后点击手机中的元素,左边即可看到属性:

即可把相关值,写入到代码中,再运行代码,调试你的业务逻辑了。
心得:
- appium 和 Appium的GUI界面调试工具:没有uiautomator2的weditor好用
- weditor可以直接连接到当前安卓手机,不影响当前界面前提下,去查看元素,及时更新Python代码,再去调试
- 比appium这种,python的client端和GUI调试界面端,是独立的,后者会影响当前app的界面,效果要好多了
- appium(不论是Python的代码,还是 界面调试工具)连接了安卓手机后(比如打开了微信app),会导致用户无法正常手动操作(微信)
- 而weditor,就不会影响用户手动操作
结论:
- appium不好用。不建议继续用appium
- 建议换用:uiautomator2 + weditor
【后记】
【已解决】Appium界面调试工具Desktop Inspector如何连接已存在的session会话
-》说明Appium的功能,也还凑合,还是基本够用的。
转载请注明:在路上 » 【已解决】Mac中用appium的GUI图形界面调试页面元素