项目场景:
最近公司项目上有做自动化的空间,由于项目比较赶,我想着就用之前用过的uiautomator2+weditor。开开心心,顺顺利利地把模拟器,weditor,Android-SDK,adb,uiautomator都配置好之后,完了,weditor连接不上设备,开始头疼了~~~
问题描述
之前也有用这个weditor,但是从来没遇到这样的问题。
我遇到的主要问题就是:weditor一直提示“本地服务未开启,使用python -m weditor启动”,按照提示操作,未果。
尝试卸载所有东西,如Android-sdk,uiautomator2,weditor,adb,未果。
使用python可以连接到设备,如图
原因分析:
使用windows系统自带的dos窗口查看电脑连接的设备,命令为adb devices
,查看是否有设备列表显示,获取设备的序列号,如图
使用python的Terminal 打开weditor,命令为python -m weditor
,等待浏览器弹出weditor页面,填入上面查到的设备的序列号,点击connect,如图(这是问题解决之后的截图)
在问题没有解决之前,每次点击connect,在Terminal就会提示AttributeError: ‘Device’ object has no attribute ‘address’,如图
在你的电脑上找到上图“箭头区域”的文件,用pycharm打开,当再次出现AttributeError: ‘Device’ object has no attribute 'address’这样的问题时,点击箭头区域,pycharm会自动定位到出错的代码位置,主要问题出在这行代码处,如图
原因分析参考凌言yy,感谢凌言yy给我提供的帮助。
为什么会存在这个问题,这样的解决方法为什么可以解决这个问题,我还是不是很理解,希望后面的大佬们,可以指点一下呀
解决方案:
实践有效的解决方案就是:
把ws_addr = get_device(id).device.address.replace("http://", "ws://") # yapf: disable
改为ws_addr = get_device(id).device.wlan_ip
重新打开weditor,输入设备的序列号,就连上啦!放鞭炮庆祝一下!