Android自动化:解决weditor连接不上设备,但是python可以输出设备信息

项目场景:

最近公司项目上有做自动化的空间,由于项目比较赶,我想着就用之前用过的uiautomator2+weditor。开开心心,顺顺利利地把模拟器,weditor,Android-SDK,adb,uiautomator都配置好之后,完了,weditor连接不上设备,开始头疼了~~~

问题描述

之前也有用这个weditor,但是从来没遇到这样的问题。
我遇到的主要问题就是:weditor一直提示“本地服务未开启,使用python -m weditor启动”,按照提示操作,未果。
尝试卸载所有东西,如Android-sdk,uiautomator2,weditor,adb,未果。
使用python可以连接到设备,如图
python连接设备正确显示设备信息

原因分析:

使用windows系统自带的dos窗口查看电脑连接的设备,命令为adb devices,查看是否有设备列表显示,获取设备的序列号,如图
adb获取设备的序列号
使用python的Terminal 打开weditor,命令为python -m weditor,等待浏览器弹出weditor页面,填入上面查到的设备的序列号,点击connect,如图(这是问题解决之后的截图)
weditor连接手机
在问题没有解决之前,每次点击connect,在Terminal就会提示AttributeError: ‘Device’ object has no attribute ‘address’,如图
报错信息
在你的电脑上找到上图“箭头区域”的文件,用pycharm打开,当再次出现AttributeError: ‘Device’ object has no attribute 'address’这样的问题时,点击箭头区域,pycharm会自动定位到出错的代码位置,主要问题出在这行代码处,如图debug
原因分析参考凌言yy,感谢凌言yy给我提供的帮助。
为什么会存在这个问题,这样的解决方法为什么可以解决这个问题,我还是不是很理解,希望后面的大佬们,可以指点一下呀

解决方案:

实践有效的解决方案就是:
ws_addr = get_device(id).device.address.replace("http://", "ws://") # yapf: disable
改为ws_addr = get_device(id).device.wlan_ip
重新打开weditor,输入设备的序列号,就连上啦!放鞭炮庆祝一下!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值