ATX ATX 项目 Question and Answers (FAQ) QQ 群消息问答部分汇总

codeskyblue · February 25, 2018 · Last by liuau86 replied at July 10, 2019 · 7323 hits

简介

本来想用TIM的在线文档来着,结果经常保存出错,害的写了好久的文档一瞬间就没了。然后也没有找到别的合适的记录问答的地方,就先写在testerhome吧

Question & Answer

Q: uiautomator2如何对单个设备进行初始化?
A: python -m uiautomator2 init --serial $SERIAL

Q: WEDITOR 是不是对安卓5以下的不友好?
A: 对Android 4.3(SDK: 18) 以上的支持的都很好。

Q: 有什么办法能够加快 atx 对 android 设备的图片的识别速度吗,感觉好慢啊?
A: atx的识别速度本身已经是毫秒级的了,影响速度的主要是截图速度,目前是通过minicap截图的,已经很快了

Q:uiautomator2的报错
uiautomator2.JsonRpcError:-32001 Server error: java.lang.IllegalArgumentException <Illegal character (d83d) >
A: 应该是界面上有什么特殊字符,java代码那部分处理的有问题。相关项目地址:https://github.com/openatx/android-uiautomator-server

Q: `cannot identify image file <_io.BytesIO object at 0x07598adfa>
A: 暂时我也没遇到过这个问题,可以通过下面的方法分析下。

  1. 手机打开http://127.0.0.1:7912/screenshot/0看看显示的什么
  2. adb shell cat /sdcard/atx-agent.log看看有什么报错不

Q: Command 'adb -s 87a6sdf9s forward --list' return non-zero exit status 1
A: 有可能是adb没加入环境变量,或其他adb相关的问题。用下面的命令分析下

  1. adb devices看看设备是不是offline
  2. 命令行下运行下报错的命令,看看输出什么 adb -s 87a6sdf9s forward --list

Q: weditor的报错

A: 先点击Connect,然后再点击Reload

Q: ModulesNotFoundError: No module named 'cv2'
A: 这个错误是因为opencv没有安装,安装方法 pip install opencv-contrib-python

Q: 使用atx uiautomator2 init之后,uiautomatorviewer就不能使用了

A: 凡是用到accessibilityservice的程序互相之间都会冲突,解决方法是需要先关掉atx uiautomator2. 给uiautomatorviewer让路

  1. 打开uiautomator这个应用
  2. 点击停止UIAUTOMATOR

使用python代码停止到uiautomator的方法是d.service("uiautomator").stop()

Q: 话说atx server能不能通过wan链接手机呢?如果能,岂不是在异地也能管理?
A: 计划中

Q: uiautomator2 更新命令是什么来的?
A: pip install --upgrade --pre uiautomator2

Q: airtest也是另外一个atx,有什么联系??
A: 以前设计airtest的时候感觉各种架构都不好,然后就大改了一波,当时改了快2个星期的样子。为了和之前的分开来,就改名了。一开始叫AutomatorX,但是名字太长了,打字不方便,就简化成了现在的atx

Q: atx-agent 怎么升级?
A: 先升级uiautomator2,然后重新运行命令python -m uiautomator2 init

Q: 联想手机,chmod 777 /data/local/tmp/atx-agent 授权过了, 但没有用,查看权限,只有rw,没有e权限
A: nobia的手机有类似的问题。将atx-agent放到这个目录下 /data/data/com.android.shell, 就可以了

Q: uiautomator2使用不了,日志/sdcard/atx-agnet.log中发现下面的错误

A: 运行python -muiautomator2 init命令,手机上会安装两个apk,这个错误应该是包名com.github.uiautomator.test的apk没有安装

Q: 手机关机,重启后,不能自动连接上atx-agent,都要重装uiautomator
A: 必需重新再init一下。如果嫌每次都要init麻烦,可以看下这个项目,它可以在手机插上电脑之后,自动执行init。adbkit-init

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 38 条回复 时间 点赞

赞👍

推荐 mkdocs,非常简单易用

@codeskyblue 楼主
使用内置的测试报告功能报错,请帮忙看下是哪里的问题;
AttributeError: module 'uiautomator' has no attribute 'add_listener'

lb 回复

那是个bug 还没修

codeskyblue 回复

@codeskyblue
好的,楼主近期有修复计划吗?

lb 回复

缓慢的修复中

已解决

是小米手机的设置问题。
解决方式来源:https://github.com/NetEaseGame/ATX/wiki/Common-Issues

想请教下,运行以后报错如下:

sonRpcError: -32001 Server error: java.lang.SecurityException <Injecting to another application requires INJECT_EVENTS permission>

要怎么办呀?
代码如下:

# -*- coding: utf-8 -*-
import uiautomator2 as ut2
import time
import unittest

class OwepaymentTests(unittest.TestCase):
def setUp(self):
self.u = ut2.connect('34c63520')
print (self.u.device_info)
self.u.app_start('com.ecaray.epark.pub.xian')

def test_owe_payment(self):
self.u(text='订单记录').click()
codeskyblue [Topic was deleted] 中提及了此贴 22 Mar 16:21


运行python -m uiautomator2 init,不成功,这是什么原因导致的?

大海 回复

被墙了,再来一次

请问ATX是否可以实现同时触碰2个或者以上的按键呢?比如王者荣耀游戏中同时左手操作前进,右手按下攻击按键

240581580 回复

暂时不可以,不过你说的王者荣耀单手也能完成。除非你有更好的例子说服我,我再考虑要不要实现一下

向大神求助:python -m uiautomator2 init输入后,最后提示:EnvironmentError: package com.github.uiautomator version expect "1.0.12" got "None" ,应该怎么破?这些组件都安装不成功!

和曦 回复

一路膜拜着大神的脚步来的,请教下之前你的WDArunner闪退怎么解决的呀

和曦 回复

由衷感谢回复,我开始按照你的截图设置了没用,carthage、node卸载后重新安装就好了!!!什么操作都没做,就按照官网的安装步骤就可以跑起来了。。。估计是carthage的问题,卸载了重装完美解决

用ATX测试网易阴阳师,安卓日志记录了下面的异常,麻烦看下是否是ATX BUG呢?(黑盒效果就是游戏闪退了)
java.lang.IllegalStateException: Cannot call disconnect() while connecting!
at android.app.UiAutomation.disconnect(UiAutomation.java:272)
at android.app.Instrumentation.finish(Instrumentation.java:245)
at android.support.test.runner.MonitoringInstrumentation.finish(MonitoringInstrumentation.java:277)
at android.support.test.runner.AndroidJUnitRunner.finish(AndroidJUnitRunner.java:282)
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:271)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2120)

240581580 回复

把错误的复现方法也贴一下


init一直这样怎么办

丽华 回复

挂代理

请问下 停止UIAUTOMATOR 后,想要重新启动只能连电脑用命令去重启吗

请问下,运行python -m uiautomator2 init,不成功,这是什么原因导致的?

关于我遇到 Command 'adb -s 87a6sdf9s forward --list' return non-zero exit status 1 的解决办法。。通过询问楼主解决的。把1.0.31版本的adb 更换成 1.0.39版本的adb即可。。

OPPO X21A连接电脑时网页上显示正常,移动到插板之后网页上该设备状态由Use变成OFFline,如何解决这个问题?


连接夜神模拟器后,weditor中的屏幕是黑的;这个是什么问题呢

守望者 回复

同样遇到这个问题,不知怎么解决。

t-bug 回复

执行 adb shell rm /data/local/tmp/minicap

codeskyblue 回复

估计还有其他的bug,会尽快fix的

codeskyblue 回复

感谢,已正常工作。

@codeskyblue 另:/atx/drivers/android.py 中第90行为什么要注释掉?
# self._adb_shell_timeout = 30.0 # max adb shell exec time
这样如果不传参数(timeout)的话会报错。

33Floor has been deleted

大神,我输入python -m uiautomator2 init,可以正常执行,但是在网页上找不到设备,我输入python -m uiautomator2 init 192.168.1.102:8000,直接会报错:main.py: error: unrecognized arguments: 192.168.1.102:8000,这是什么情况?

codeskyblue 专栏文章:2018年 终总结 中提及了此贴 18 Feb 10:26
乱斗东 回复

同样遇到该问题,你解决了吗

乱斗东 回复

同遇到这样的问题,在网页上输入ip加端口号是能进入ATX-Server的,有没有大佬知道怎么解决😔

枫叶 回复

我在这边文章下面看到了这个问题的解决方法,链接地址:https://testerhome.com/topics/11588
解决方法是在ip前面加上--server,例如:python -m uiautomator2 init --server 172.17.152.101:8000

@codeskyblue 你好,请问在用U2跑脚本途中遇到如下问题是什么导致的?之前是U2不停在“uiautomator is starting ...”Thanks~

Joe 回复

adb forward --list 是不是 adb重启了,或者设备断线之后立刻重连了

我试用华为p20 8.1系统,init后拔出USB,U2就GG了. 只有一直插着USB才可以. 请问有解决方法么?
我试过5.1 6.X 7.X 系统的手机没有这种问题.
主要想学习该帖子:https://testerhome.com/topics/11980 脱离电脑执行一些脚本.

准备用这个来做公司app的安卓自动化,感谢大佬

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up