最近将公司的设备通过 stf 进行了集中管理,有个问题就是所有的设备都要用数据线连接电脑,而且根据官网的说明 ,对 usbHub 的要求貌似还很高。
在半夜逛论坛的过程中发现@codeskyblue 的帖子:https://testerhome.com/topics/11546
根据https://github.com/openatx/atx-server
安装成功!
设备只要充着电就可以实现集群管理 ,美滋滋。。。
接下来 把安装的大致步骤记录下来供大家参考:
1、首先安装 Golang go 语言开发环境和 rethinkdb:
安装 Golang 环境
下载地址:https://golang.org/dl/
安装说明:http://www.runoob.com/go/go-environment.html
安装好 rethinkdb
https://rethinkdb.com/docs/install/
mac 系统的话 可以直接用 brew 安装
brew install go
brew install rethinkdb
2、安装 atx-server
注意:可能需要*才能安装成功
go get -v github.com/openatx/atx-server
3、build atx-server
Mac 下的 Gopath 为: /Users/test/go
$ cd go/src/github.com/openatx/atx-server
$ go build
如果 build 报错,一般都是由于第二步 go get 的时候没有把相关的依赖全部下载完成导致的。
> 解决办法
检查 GOPATH/src/golang.org/x
文件夹是否存在,在 x
文件夹下是否存在以下三个文件夹crypto
、net
、 sys
如果没有 就重新执行步骤 2 的命令下载相关依赖文件
实在下载不下来的可以从 golang 的 gitlab 上手动下载相关的 zip 包 解压重命名为crypto
、net
、 sys
后放到 GOPATH/src/golang.org/x
文件夹下
https://github.com/golang/net
https://github.com/golang/sys
https://github.com/golang/crypto
4、启动 rethinkdb 和 atx-server
$ rethinkdb --http-port 8090 #指定端口启动rethinkdb
#启动atx-server
$ cd /Users/test/go/src/github.com/openatx/atx-server
$ ./atx-server --port 8000
这样 打开浏览器,输入地址127.0.0.1:8000
或者本机的 ip 地址加端口号 172.16.120.20:8000
就可以直接访问 atx-server 的地址了
5、安装 uiautomator2 并将其装到手机上
电脑端 pip install 安装好 uiautomator2 之后,将安卓设备连接到电脑,确保 adb devices 能够识别到设备
之后再执行第二行代码,将自动将 uiautomator 安装到手机上 并自动运行
其中 init 后面的 IP 地址为步骤 4 启动 atx-server 的电脑的 ip:8000 本机的 stx-server 地址为 172.16.120.20:8000
$ pip install --pre --upgrade uiautomator2 #安装uiautomator2
$ python -m uiautomator2 init 172.16.120.20:8000 #将uiautomator安装到手机设备上
安装的 log 信息如下,可以看到设备的对应 IP:
testdeMac-mini:~ test$ python -m uiautomator2 init 172.16.120.20:8000
2018-01-10 15:11:33,546 - __main__.py:221 - INFO - atx-server addr 172.16.120.20:8000
2018-01-10 15:11:33,572 - __main__.py:236 - INFO - Device(0642f8d6f0ec9d1a) initialing ...
2018-01-10 15:11:33,818 - __main__.py:115 - INFO - install minicap
2018-01-10 15:11:33,925 - __main__.py:122 - INFO - install minitouch
2018-01-10 15:11:35,755 - __main__.py:143 - INFO - app-uiautomator.apk(1.0.6) installing ...
2018-01-10 15:12:04,397 - __main__.py:157 - INFO - atx-agent(0.1.4) already installed, skip
2018-01-10 15:12:06,255 - __main__.py:206 - INFO - atx-agent output: server started, listening on 192.168.2.4:7912
2018-01-10 15:12:06,256 - __main__.py:207 - INFO - success
2018-01-10 15:12:06,256 - __main__.py:236 - INFO - Device(5eb2b636) initialing ...
2018-01-10 15:12:06,516 - __main__.py:115 - INFO - install minicap
2018-01-10 15:12:06,688 - __main__.py:122 - INFO - install minitouch
2018-01-10 15:12:09,107 - __main__.py:143 - INFO - app-uiautomator.apk(1.0.6) installing ...
2018-01-10 15:12:17,802 - __main__.py:157 - INFO - atx-agent(0.1.4) already installed, skip
2018-01-10 15:12:19,329 - __main__.py:206 - INFO - atx-agent output: server started, listening on 192.168.2.3:7912
2018-01-10 15:12:19,329 - __main__.py:207 - INFO - success
6、全都就绪 ,打开浏览器访问就可以啦
http://localhost:8000/
http://172.16.120.20:8000/ # 我电脑的局域网 IP 地址 别人电脑访问这个地址也能打开页面
################################################################################
自动化的 demo 实践:
在步骤 5 中可以看到 Device(0642f8d6f0ec9d1a) nexus5 的 ip 是 192.168.2.4:7912
写了个简单的运行网易云音乐的 demo 脚本:
import uiautomator2 as ut2
def main():
u = ut2.connect('192.168.2.4:7912')
print(u.info)
u.app_start('com.netease.cloudmusic')
u(text='私人FM').click()
u(description='转到上一层级').click()
u(text='每日推荐').click()
u(description='转到上一层级').click()
u(text='歌单').click()
u(description='转到上一层级').click()
u(text='排行榜').click()
u(description='转到上一层级').click()
if __name__ == '__main__':
main()
打开http://localhost:8000/ 看看 nexus5 脚本运行的效果:
ATX QQ 交流群:499563266
为什么启动 atx-server 后 浏览器打不开
看看你是不是在 atx-server 的文件夹下启动服务,需要cd go/src/github.com/openatx/atx-server/
到 atx-server 目录下载执行./atx-server
为什么手机 init 成功了之后,在 web 上没有出现设备?
确保你的手机和你启动 atx-server 的电脑在同一个 wifi 下面,不在一个 wifi 下面,怎么可能连上呢?
我的手机python -m uiautomator2 init
报错,init 不成功
把手机上安装过的 uiautomator 的 app 给删掉,之前 macaca、appium 安装的 uiautomator 的 app 也删了 。重新安装 uiautomator,重启手机。还是 init 失败,那就换台手机吧
为了修复一下 init 数字开头的 serial 的设备出错的问题。init 这部分的代码使用 argparse 重构了一下。抛弃了原来的 google-fire 库
新的用法可以通过--help 查看帮助
python -m uiautomator2 init --help
部分使用方法有所修改
旧命令 python -m uiautomator2 init $IP
新命令 python -m uiautomator2 init --server $IP
指定设备 init 的时候方法不变python -m uiautomator2 init --serial $SERIAL
实践的挺快的嘛。最近有时间了,所以这个 atx-server 我估计还会加些别的功能,比如安装,看日志
ss*** 了,google 能上了,就是下载不下来,好忧伤
我在 App Store 上随便找了个免费的 *** 开着就可以下成功了。
ss 是不是不是全局 *** 的?
好东西,最近打算基于这个看能不能搞定设备实时管理。资产登记的话用起来繁琐,容易信息滞后。
我昨天晚上折腾了好久 SS 也没拉下来,后来手动 go get github.com/golang/net 拉下来,然后 mkdir golang.org/x 再把拉下来的 net 目录移到 olang.org/x 目录搞定
我的是 Windows,给命令行设置了下就可以
set http_proxy=http://127.0.0.1:1080
set https_proxy=http://127.0.0.1:1080
环境搭建起来了,和楼主一样精彩碰到最后一个问题。
另外,怎么远程控制安装 app 呢?
远程控制界面比较原始,你也看到了。不过可以用 uiautomator2 这个库执行安装,传递一个 apk 的 url 就可以了
@codeskyblue 相比较 STF 可能做得更好些,不过远程连接这个 比有线连接方便多了
@cynic 点击眼睛以后怎么操作页面呢,我怎么操作都不会显示内容
在步骤 3 下补充了在没有 *** 下 go get 安装 atx-server 时 golang 相关包无法下载手动解决办法
能否将其和 stf 综合一下 哪位大侠写一把看看😁😁
—— 来自 TesterHome 官方 安卓客户端
stf 功能多而全,atx 虽然没 stf 那么多功能,但是也够用。最主要的是,stf 需要设备通过 usb 连接;atx 只要手机有电,连着同一个 Wi-Fi 就行了。感觉比 stf 稳定,毕竟 stf 上有的设备会老掉线,且对 usb hub 的要求挺高的。
调整了一下 golang 的 vendor,现在编译应该不用 *** 了
在 Windows 折腾了很久才基本装完,在执行 python -m uiautomator2 init 172.16.120.20:8000 的时候报 subprocess.CalledProcessError:command'adb -s xxx --list' returned non-zero exit status 1。 打算明天有时间在去看看源码是怎么样操作的。
这个问题已经解决了,是因为 5037 端口被占用了,然后安装成功后又有一个新问题,页面不显示设备?
后面的 IP 要用你启动服务的电脑的 IP ,端口 8000 是步骤 4 atx-server -addr :8000 设定的端口号。
你 ipconfig 看一下你的电脑 IP 是多少
但是你的报错好像是没有找到安卓设备吧
adb devices 看看有没有识别到你的手机
这个问题已经解决了,是因为 5037 端口被占用了,
安装成功后打开 localhost:8000 没有显示连接的设备,但是打开 RethinkDB(localhost:8090)可以看到连接了 2 个设备的(Tables 2 ready)
(这个也解决了,一开始是用公司 WIFI,换成自己的手机热点就 OK)
修改启动 atx server 启动命令为: atx-server --port 8000
https://github.com/openatx/atx-server/commit/b5c5478878039f849c95e7bcc0710c47ed50e6a4
控制设备打开的应用变成横屏的显示怎么解决
@cynic 楼主,你好;我这边访问网页,只有 atx-server 框架页面,没有显示手机信息,请问是哪里原因?
不错! 但是也有两个缺点:
1、手机依然需要开启 usb 调试
3、wifi 不如用数据线连接速度快,设备多了很容易掉线
手机要执行第 5 步的操作,先连线设备执行python -m uiautomator2 init ATX_SERVER_IP
手机安装上一个 apk 应该可以了 然后手机 wifi 和启动服务的电脑的 ip 在同一个局域网
今天在 stf 上连接红米手机遇到无法连上的问题 然后再开发者选项里的 允许模拟点击选项之后就好了 可能这也是一样的原因吧
你开启允许模拟点击再试试
最后的那个问题,atx-agent 0.2.1 版本修复了
我在连接设备时也遇到这个问题:Command 'adb -s 127.0.0.1:62001 forward --list' returned non-zero exit status 1
但是查了端口,5037 端口是 adb.exe,请问还有可能是什么原因呢?
有遇到这个坑的朋友吗?
开发者选项里有个允许模拟点击 把它打开应该就好了
2018-05-11 14:55:15,896 - main.py:212 - INFO - launch atx-agent daemon
Traceback (most recent call last):
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 387, in _make_request
six.raise_from(e, None)
File "", line 2, in raise_from
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 383, in _make_request
httplib_response = conn.getresponse()
File "D:\Program Files (x86)\Python\Python36-32\lib\http\client.py", line 1331, in getresponse
response.begin()
File "D:\Program Files (x86)\Python\Python36-32\lib\http\client.py", line 297, in begin
version, status, reason = self._read_status()
File "D:\Program Files (x86)\Python\Python36-32\lib\http\client.py", line 258, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "D:\Program Files (x86)\Python\Python36-32\lib\socket.py", line 586, in readinto
return self._sock.recv_into(b)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\requests\adapters.py", line 440, in send
timeout=timeout
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 639, in urlopen
_stacktrace=sys.exc_info()[2])
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\util\retry.py", line 357, in increment
raise six.reraise(type(error), error, _stacktrace)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\packages\six.py", line 686, in reraise
raise value
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 601, in urlopen
chunked=chunked)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 389, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 309, in _raise_timeout
raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='localhost', port=63463): Read timed out. (read timeout=3)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Program Files (x86)\Python\Python36-32\lib\runpy.py", line 193, in run_module_as_main
"main", mod_spec)
File "D:\Program Files (x86)\Python\Python36-32\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\uiautomator2__main.py", line 356, in
main()
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\uiautomator2__main.py", line 352, in main
fire.Fire(MyFire)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\fire\core.py", line 127, in Fire
component_trace = _Fire(component, args, context, name)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\fire\core.py", line 366, in _Fire
component, remaining_args)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\fire\core.py", line 542, in _CallCallable
result = fn(*varargs, **kwargs)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\uiautomator2__main.py", line 273, in init
ignore_apk_check)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\uiautomator2__main.py", line 295, in _init_with_serial
ins.launch_and_check()
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\uiautomator2__main_.py", line 225, in launch_and_check
'http://localhost:%d/version' % lport, timeout=3)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\requests\api.py", line 72, in get
return request('get', url, params=params, **kwargs)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\requests\api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\requests\sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\requests\sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\requests\adapters.py", line 521, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='localhost', port=63463): Read timed out. (read timeout=3)
初始化时候报这个错 怎么解决呢?
adb shell rm /data/local/tmp/atx-agent
之后 再执行 python -m uiautomator2 init
试试看
准备实践下,想请教下楼主,atx-agent 如何解决国内各种定制手机的 apk 安装的限制? 比如 oppo、vivo 的帐号弹框,vivo 还有个烦人的模拟点击,小米的安全权限等等。
另外安卓手机还有 bug,存在 uid leak 的情况,简单来说就是 apk 循环安装卸载,重复 10000 次,手机就没办法再安装 apk 了,我报给 google,但是 google 不修。这就意味着手机需要定时重启,重启后如何拉起等等问题。
C:\Users\renchuanbin>python -m uiautomator2 init 192.168.137.104:8000
2018-05-18 13:58:35,549 - main.py:254 - INFO - atx-server addr 192.168.137.104:8000
2018-05-18 13:58:35,572 - main.py:269 - INFO - Detect pluged devices: [u'192.168.137.118:5555']
2018-05-18 13:58:35,572 - main.py:286 - INFO - Device(192.168.137.118:5555) initialing ...
2018-05-18 13:58:35,842 - main.py:113 - INFO - install minicap
2018-05-18 13:58:36,160 - main.py:120 - INFO - install minitouch
2018-05-18 13:58:36,407 - main.py:137 - INFO - apk(1.0.14) already installed, skip
2018-05-18 13:58:36,509 - main.py:175 - INFO - atx-agent(0.3.2) already installed, skip
2018-05-18 13:58:36,648 - main.py:212 - INFO - launch atx-agent daemon
2018-05-18 13:58:41,788 - main.py:238 - ERROR - failure
请问启动 atx-agent 失败 是怎么回事呢?
请问下,我使用的是 usb 链接,界面启动成功,但是不能看到我链接上的设备信息。使用 adb devices 也能拼到设备是链接成功的
执行下python -m uiautomator2 init 10.0.34.75:8000
后面换成你 server 的 ip
网页可以正常显示了,应该是局域网的问题。我直接用手机分享无线网,然后电脑连接这个无线网,就可以正常显示了,但是有个问题不知道是不是正常的:我在 init 里面,显示的监控的设备 ip 和网页上面显示的 IP 不一致,一直是 offline 的状态
offline 显示的 ip 还是之前的设备 ip 再重新 online 后 就会变成正确的了 所以你还是搞个无线路由器试试看吧
好的,谢谢~~我搭建出来的网页,第 5 步哪里,没有眼睛图标可以点击,直接点更多下面的图标,跳转过去就一直是黑色的。。请问下这个是我搭建的问题么?
现在的页面长这样了 点击use
跳转到操作页面
你说的黑色页面 是 shell 页面吧 可以直接输入 shell 命令操作手机 adb shell
一样
小米 5S 连接上了,但是鼠标点屏幕没反应。有谁遇到过么,在开发者选项中也没找到 允许模拟点击选项。
点下面的 home,back 键倒是有反应。
另外一台 oppo R9 倒是有反应
python -m uiautomator2 init 192.168.165.2:8000
2018-05-29 10:27:41,334 - __main__.py:254 - INFO - atx-server addr 192.168.165.2:8000
Traceback (most recent call last):
File "E:\Python35\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "E:\Python35\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "E:\Python35\lib\site-packages\uiautomator2\__main__.py", line 352, in <module>
main()
File "E:\Python35\lib\site-packages\uiautomator2\__main__.py", line 348, in main
fire.Fire(MyFire)
File "E:\Python35\lib\site-packages\fire\core.py", line 127, in Fire
component_trace = _Fire(component, args, context, name)
File "E:\Python35\lib\site-packages\fire\core.py", line 366, in _Fire
component, remaining_args)
File "E:\Python35\lib\site-packages\fire\core.py", line 542, in _CallCallable
result = fn(*varargs, **kwargs)
File "E:\Python35\lib\site-packages\uiautomator2\__main__.py", line 261, in init
output = subprocess.check_output(['adb', 'devices'])
File "E:\Python35\lib\subprocess.py", line 316, in check_output
**kwargs).stdout
File "E:\Python35\lib\subprocess.py", line 383, in run
with Popen(*popenargs, **kwargs) as process:
File "E:\Python35\lib\subprocess.py", line 676, in __init__
restore_signals, start_new_session)
File "E:\Python35\lib\subprocess.py", line 957, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
win 环境下
3、build atx-server
Mac 下的 Gopath 为: /Users/test/go
$ cd $GOPATH/src/github.com/openatx/atx-server #GOPATH=‘/Users/test/go’
以上要改为
要用 echo %GOPATH% 来确认路径 和
cd %GOPATH%\src\github.com\openatx\atx-server 来切换 或者绝对路径切换
还有已知开启 360 或者 eset 杀软,会影响连接真机.需要关掉 360 或暂停 esst 防护才可.
手机重启后就连接不上了,又要重新连电脑装包才行,能不能安装一次之后,可以在手机上手动启动
用虚拟机测试,在 web 页面上显示不出设备
必须要连接 WIFI 且在同一网段下吗?我断开 wifi 显示 offline 了。现在可以在页面上直接进行代码操作吗?
去 rethinkdb 里删掉就好了 可参考这个帖子 https://testerhome.com/topics/5848
win7 安装 atx 报错如下:
F:\Go\src>go get -v github.com/openatx/atx-server
github.com/openatx/atx-server (download)
com\openatx\atx-server
Cloning into 'F:\golang\go\src\github.com\openatx\atx-server'...
fatal: unable to access 'https://github.com/openatx/atx-server/:' error:1407742E
:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
package github.com/openatx/atx-server: exit status 128
问下哈,这边我在安卓手机上执行命令成功安装了 uiautomator2,但是刷新 atx-server 页面却没看到设备,然后我就换了一台安卓手机同样执行命令来安装,但是却报如下错误,帮忙看下啥问题
这里点击不了,一开始可以点击 use,刷新页面就变这样了
rethinkdb 可以用其他替换吗
“多台设备同时执行脚本,或者先后执行同一个脚本”。有实践过的吗?
@cynic @codeskyblue
server 也起来了,init 也成功了 ,网络也能 ping 通的 ,杀毒软件 防火墙之类的也关了,手机上允许 USB 模拟权限开启了,更换过一台设备但是网页上还是没有出现设备。不知道哪里还会有问题?
@cynic 请指教
有点激动,立马实践下先!
C:\Users\luoZhongXu>python -m uiautomator2 init 100.64.233.232:8000
2018-10-19 09:40:15,370 - main.py:289 - INFO - atx-server addr 100.64.233.232:8000
Traceback (most recent call last):
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 193, in run_module_as_main
"main", mod_spec)
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\site-packages\uiautomator2__main.py", line 394, in
main()
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\site-packages\uiautomator2__main.py", line 390, in main
fire.Fire(MyFire)
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\site-packages\fire\core.py", line 127, in Fire
component_trace = _Fire(component, args, context, name)
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\site-packages\fire\core.py", line 366, in _Fire
component, remaining_args)
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\site-packages\fire\core.py", line 542, in _CallCallable
result = fn(*varargs, **kwargs)
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\site-packages\uiautomator2__main.py", line 300, in init
sn for sn, _ in adbutils.Adb().devices(states=['device'])
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\site-packages\uiautomator2\adbutils.py", line 34, in devices
output = subprocess.check_output([self.adb_path(), 'devices'])
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 389, in check_output
**kwargs).stdout
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 466, in run
with Popen(*popenargs, **kwargs) as process:
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 769, in __init_
restore_signals, start_new_session)
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 1113, in _execute_child
args = list2cmdline(args)
File "C:\Users\luoZhongXu\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 524, in list2cmdline
needquote = (" " in arg) or ("\t" in arg) or not arg
TypeError: argument of type 'NoneType' is not iterable
楼主请教一下这是什么原因。
https://github.com/openatx/uiautomator2#limitation-%E9%99%90%E5%88%B6
暂时对 python37 的支持还没做 你装 pytho36 的再试一下看看
看看你是不是在 atx-server 的文件夹下启动服务,需要 cd go/src/github.com/openatx/atx-server/ 到 atx-server 目录下载执行./atx-server
我这个地方没有这个 atx-server
但是在 usr/local/go/bin/下面有 atx-server
我在这里启动怎么 127.0.0.1:8000 没有显示
ubantu 16.04 系统
要到 gopath/src/github.com/openatx/atx-server/ 这个目录下执行./atx-server 启动才能正常
你先把 gopath 在环境变量中配置好呗
如果在 uiautomator.apk 里手动点击 “停止 UIAUTOMATOR” 和 “停止 ATXAGENT” 以后,再跑脚本就会提示需要重新安装 uiautomator.apk,怎么重新打开这两个服务呢?杀了进程重新进 App 还是没有用。
那就是说,如果不小心误操作点了 uiautomator 里的停止 UIAUTOMATOR” 和 “停止 ATXAGENT”,只能通过重新安装这个 uiautomator.apk 来让服务重启了?
那杀 uiautomator.apk 进程是不会让这两个服务关闭吗?,只有点 “停止 UIAUTOMATOR” 和 “停止 ATXAGENT”,才算服务被关闭了?
运行一段时间后,通过网页操作手机就非常卡,你们的是这样吗?有人反馈过这问题吗
大神看我这是什么情况,能看到手机,就是不能操作。。。。。。
atx-server 装不上吗?
go version # 期望1.11
git clone https://github.com/openatx/atx-server
go build
1.显示不出序列号、型号、品牌的问题我也遇到了,不过后来重新 init 了一下不知道怎么又好了~
2.大佬,想问下我在 atx-server 这边点 use 远程操作手机很灵敏,但是用 python -m weditor 打开后操作手机却非常慢。。。大概是什么问题啊~
我的小米 4 一闪而过咋回事?
一定要在同一 wifi 下吗?在同一内网行不行,同一网段?我准备部署到内网服务器上。
我在内网服务器用 docker 启动好了,在电脑本地也用 docker 启动好了,手机上 init 成功了,通过我的电脑访问 atx-agent,也能正常显示页面,但是 init 的时候无论是把 atx-server 的地址指向服务器还是指向我同一 wifi 下的电脑的地址,atx-server 的 web 页面都没有显示设备,这个可能是什么原因?或者该如何调试?
我安装好,网页上也出现设备了,把 USB 从手机上拔下后,设备就消失了。。为什么啊。
有的手机就是这样的 拔了之后 atx-agent 就挂了 我之前也遇到个手机 会这样 貌似是 oppo 的
现在一般都是电脑开着 u2init 手机插电脑上直接连接到 atx-agent 然后就一直插着了 不拔下来
貌似大多数手机息屏后,会自动断开 wifi
atx-server'web 端操作完之后 关闭会打开 identify 的页面 你进行自动化操作之后 ,执行 d.open_identify() 回到那个黑色的页面 就不会自动息屏了
这个有拉日志的功能?
到 init 这一步一直报错main.py: error: unrecognized arguments: 192.168.1.103:8000,可是电脑就是这个 ip 额,大神怎么解决,换了几个手机了
现在是可以执行 python -m uiautomator2 init --server 172.16.120.20:8000;但是 server 上还是看不到手机设备,adb 是有的,ping 也 ping 通的
为了修复一下 init 数字开头的 serial 的设备出错的问题。init 这部分的代码使用 argparse 重构了一下。抛弃了原来的 google-fire 库
新的用法可以通过--help 查看帮助
python -m uiautomator2 init --help
部分使用方法有所修改
旧命令 python -m uiautomator2 init $IP
新命令 python -m uiautomator2 init --server $IP
指定设备 init 的时候方法不变python -m uiautomator2 init --serial $SERIAL
我的环境时 mac os,在 go/src/github.com/openatx/atx-server/ 目录下执行 ./atx-server --port 8000,提示 [FATAL][github.com/openatx/atx-server] database.go:29: gorethink: dial tcp 202.106.199.34:28015: connect: operation timed out,大家有遇到同样的问题么
搭建环境后在遍历获取子元素文本的速度很慢,有好的解决方案吗
这个集群管理,只支持 WIFI, 不支持 USB 吗?
https://testerhome.com/topics/15321
配合这个 使用 ,wifi 和 usbatx-uiautomator2 都支持的
请问有人成功使用多台手机同时执行脚本的吗?
./atx-server 这个命令未找到,是怎么回事?我每次 go getv 的时候看见有些是下载超时,这个怎么解决?
科学上网
换成 py3 试试
atxserver 已经不维护了 建议使用 https://github.com/openatx/atxserver2
可能是你电脑网络的问题吧
真机试试
大多数模拟器不支持 minicap
为啥是空呢?
成功了~
加上 ip ,不能识别参数
mac 源码安装的 atxserver2,
拔掉 usb 线之后,就找不到设备了……但 weditor 是可以正常连接并操作的。老大这怎么回事啊……试了小米、华为都这样
atxserver2:启动指定了 python main.py --port 8000
atx-android-provider 启动还是默认的 3500 端口,
然后初始化设备:python -m uiautomator2 init --server xx.xx.xx.xx:8000 或 3500 端口都一样,提示上边的:404 post
问一下,atx-server 与手机端是怎样通信的,执行 “python -m uiautomator2 init --server xx.xx.xx.xx:8000” 中,哪个模块把手机信息报给 atx-server 的?
大佬,求问 在第三步骤 go build 时报如下错:go: github.com/qiniu/log@v0.0.0-20140728010919-a304a74568d6: invalid version: git fetch -f https://github.com/qiniu/log refs/heads/:refs/heads/ refs/tags/:refs/tags/ in /Users/go/pkg/mod/cache/vcs/e2aa7c3b2b94e14fa609a95a4fcc3ac4e9e77c1eefe42a5e5eb4d457eabbe31b: exit status 128:
fatal: could not read Username for 'https://github.com:' terminal prompts disabled
百度了一圈,也没解决,求大佬帮忙看看
github.com/qiniu/log 这个项目被 qiniu 公司删掉了,另外这个项目不再维护了。请转到 https://github.com/openatx/atxserver2
太火了。评论太长了,如果建立一个专门搜索问题的地方就好了, 我也有很多已经解决的问题,想跟大家分享,这是一个好项目
pip install --pre --upgrade uiautomator2 请问下是随便安装在那个目录下就可以吗?
大佬,问个问题,atx 是不是只能用于模拟器的自动化,不能用于真机的
博主,我的 rethinkdb 下载了启动不了怎么办,cd 到那个文件夹下说找不到执行文件,但其实是有的。然后 go build 的时候一直有无效 zip,是 rethinkdb 没下好的原因吗?
这个项目早就不再维护了,https://github.com/openatx/atxserver2 建议使用这个新的