uiautomator2出错adbutils.errors.AdbError,forward_list为空

来源:2-11 u2项目初始化

秋晨001

2020-09-19

#coding=utf-8

import uiautomator2 as u2
import time

d = u2.connect("手机公网ip:10002")
d.debug = True # 打开debug模式

print(d.device_info)

我尝试运行如上时出现了如下错误
图片描述

我根据报错信息简单做了下调试源码,以下是我从源码中获得信息
准备转发:
图片描述
执行转发:
图片描述
报错的地方:
图片描述

我猜测可能是执行转发命令时[‘host-serial’, ‘手机公网ip:10002’, ‘forward’, ‘tcp:48855;tcp:7912’]出现了错误
48855应该就是服务器服务的端口,可是这个端口并没有服务
图片描述
从源码中大概可以知道它会先尝试从forward_list中获得可用的端口,如果没有就会从本地随意获得一个可用的端口。

我尝试手动获得forward_list信息

for item in adb.forward_list("手机公网ip:10002"):
	print(item.serial, item.local, item.remote)

没有输出内容。

adb connect是可以连接到手机的
令我疑惑的是为什么forward_list中会没有可用的端口呢,为什么服务器的端口没有拉起来呢?

还希望万能的大壮老师,能为我指点迷经,学生感激不尽

写回答

1回答

大壮老师

2020-09-19

1、首先使用USB模式连接移动设备,唤起atx-agent,前提条件是已初始化

import uiautomator2 as u2
d = u2.connect('123456f') # alias for u2.connect_usb('123456f')
print(d.info)

2、移动设备使用4G获取IP后连接,我这里尝试未成功,但是在局域网WIFI下是可以成功的。也就是通过USB唤起ATX-AGENT后是可以通过wifi进行连接的。

0
0

移动端Python爬虫实战 数据抓取+数据可视化

从App数据抓取到数据可视化,全流程讲解

1831 学习 · 1003 问题

查看课程