最新消息:20210917 已从crifan.com换到crifan.org

【已解决】Mac中用appium的GUI图形界面调试页面元素

app crifan 484浏览 0评论
折腾:
【记录】跑通运行代码:win中的app微信公众号采集
期间,已经能初始化appium的开发环境了。
看到有些地方提到,好像有个appium的UI,供调试界面的
搜:
appium mac 调试界面
找到
Mac 下安装 appium 调试安卓真机 – 简书 (jianshu.com)
说是:点击放大镜
然后出现界面了:
但是点击 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图形界面调试页面元素

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
93 queries in 0.179 seconds, using 23.30MB memory