uiautomator2突然提示unknown host service

问题现象

一直用的好好的WEditor定位元素,今天突然不好用了

问题定位

通过跑出的异常的堆栈信息来定位:
Traceback (most recent call last):
File “C:\Python37\lib\site-packages\weditor\web\handlers\page.py”, line 153, in post
id = connect_device(platform, device_url)
File “C:\Python37\lib\site-packages\weditor\web\device.py”, line 101, in connect_device
d = AndroidDevice(device_url)
File “C:\Python37\lib\site-packages\weditor\web\device.py”, line 24, in init
d = u2.connect(device_url)
File "C:\Python37\lib\site-packages\uiautomator2_init
.py", line 1794, in connect
return connect_usb(addr)
File “C:\Python37\lib\site-packages\uiautomator2_init_.py”, line 1835, in connect_usb
return Device(serial)
File “C:\Python37\lib\site-packages\uiautomator2_init_.py”, line 235, in init
wlan_ip = self.wlan_ip
File “C:\Python37\lib\site-packages\uiautomator2_init_.py”, line 404, in wlan_ip
ip = self.http.get("/wlan/ip").text.strip()
File “C:\Python37\lib\site-packages\requests\sessions.py”, line 543, in get
return self.request(‘GET’, url, **kwargs)
File “C:\Python37\lib\site-packages\uiautomator2_init_.py”, line 198, in request
url = self.client.path2url(url)
File "C:\Python37\lib\site-packages\uiautomator2_init
.py", line 261, in path2url
return urlparse.urljoin(self.get_atx_agent_url(), path)
File "C:\Python37\lib\site-packages\uiautomator2_init
.py", line 245, in get_atx_agent_url
lport = self.adb_device.forward_port(7912) # this method is so fast, only take 0.2ms
File "C:\Python37\lib\site-packages\adbutils_init
.py", line 473, in forward_port
for f in self.forward_list():
File "C:\Python37\lib\site-packages\adbutils_init
.py", line 305, in forward_list
c.check_okay()
File "C:\Python37\lib\site-packages\adbutils_init
.py", line 155, in check_okay
raise AdbError(self.read_string())
adbutils.errors.AdbError: unknown host service

  1. 看堆栈信息是找不到设备,然后用adb命令查看,结果很神奇的是可以拿到设备列表。。。
  2. 然后再继续查询资料,网上的建议有几种,第一:是不是有多个adb,排除;第二:是不是该安装的apk有没有安装的,排除;
  3. 那就奇怪了,然后继续看问题,既然是找不到设备,会不会是负责adb通讯的adb命令模块有问题
  4. 开始尝试将adb更换为官方的adb,之前是简易的adb命令,就是只有几个dll和adb.exe的那个版本
  5. 替换为https://dl.google.com/android/repository/platform-tools_r29.0.5-windows.zip
  6. 并设置为环境变量,再次执行python -m uiautomator2 init,结果就成功了

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值