问题标签 [androidviewclient]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 是否可以根据 TextView 文本查找视图,然后使用 AndroidViewClient 查找上一个/下一个视图?
是否可以根据 TextView 文本找到一个视图,然后使用 AndroidViewClient 转到上一个或下一个视图并使用(触摸等)它?
在我试图自动化的应用程序中,有一个项目列表,每个项目都有复选框、文本和设置图标。所有的复选框和设置图标都具有相同的资源 id,并且只能通过 TextView 文本来区分。所以我需要能够在视图上找到这个独特的 TextView 文本,然后能够跳转到层次结构树中的下一个/上一个视图。
这可以用 AndroidViewClient 完成还是我需要寻找像 这里这样的解决方案?
python - 无法使用 AndroidViewClient 将图像写入文件
vc.writeImageToFile("C:\image.png") 代码给出以下错误:
文件“C:\AndroidViewClientMaster\AndroidViewClient\src\com\dtmilano\android\viewclient.py”,第 2309 行,在 writeImageToFile self.device.takeSnapshot().writeToFile(filename, format)
文件“C:\Python27\lib\site-packages\PIL\Image.py”,第 512 行,在getattr中 引发 AttributeError(name)
属性错误:writeToFile
怎么了?
android - 无法通过 AndroidViewClient 区分 NumberPicker 视图
在我试图用 AndroidViewClient 自动化的应用程序中,有一些用 NumberPicker 实现的小部件。使用 AndroidViewClient / culebra 我无法区分这些 NumberPickers 上显示的值/文本。
androidviewclient - Not able to run AndroidViewClient
I am get the all the Id's of the current screen without using the Source.
So I am using Androidviewclient
Have followed below steps
1) Downloaded the Androidviewclient-master.zip
2) unzipped and edited the dump file in the AndroidViewClient-master\AndroidViewClient\tools for the souce location
3) Set the Environment variable ANDROID_VIEW_CLIENT_HOME and PYTHONPATH
4) When i execute as below in cmd
C:\Users\Lahir\Desktop\Automation\adt-bundle-windows-x86_64-20131030\adt-bundle-windows-x86_64-20131030\sdk\tools>monkeyrunner.bat C:\AndroidViewClient-master\AndroidViewClient\tools\dump.py
Getting Error as below:-
Can't open specified script file Usage: monkeyrunner [options] SCRIPT_FILE -s MonkeyServer IP Address. -p MonkeyServer TCP Port. -v MonkeyServer Logging level (ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE, OFF)
And also instead of dump.py if i run as dump as below
C:\Users\Lahir\Desktop\Automation\adt-bundle-windows-x86_64-20131030\adt-bundle-windows-x86_64-20131030\sdk\tools>monkeyrunner.bat C:\AndroidViewClient-master\AndroidViewClient\tools\dump
I am getting the following Error
140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] Script terminated due to an exception 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions]Traceback (most recent call last): File "C:\AndroidViewClient-master\AndroidViewClient\tools\dump", line 129, in vc = ViewClient(*ViewClient.connectToDeviceOrExit(**kwargs1), **kwargs2) File "C:\AndroidViewClient-master\AndroidViewClient\src\com\dtmilano\android\viewclient.py", line 1435, in connectToDeviceOrExit ViewClient.setAlarm(timeout+5) File "C:\AndroidViewClient-master\AndroidViewClient\src\com\dtmilano\android\viewclient.py", line 1395, in setAlarm signal.alarm(timeout) File "C:\Users\Lahir\Desktop\Automation\adt-bundle-windows-x86_64-20131030\adt-bundle-windows-x86_64-20131030\sdk\tools\lib\jython-standalone-2.5.3.jar\Lib\signal.py", line 222, in alarm
NotImplementedError: alarm not implemented on this platform
140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyException.doRaise(PyException.java:219) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.Py.makeException(Py.java:1239) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.Py.makeException(Py.java:1243) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.Py.makeException(Py.java:1247) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at signal$py.alarm$14(C:\Users\Lahir\Desktop\Automation\adt-bundle-windows-x86_64-20131030\adt-bundle-windows-x86_64-20131030\sdk\tools\lib\jython-standalone-2.5.3.jar\Lib\s 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at signal$py.call_function(C:\Users\Lahir\Desktop\Automation\adt-bundle-windows-x86_64-20131030\adt-bundle-windows-x86_64-20131030\sdk\tools\lib\jython-standalone-2.5.3.jar\ 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyTableCode.call(PyTableCode.java:165) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyBaseCode.call(PyBaseCode.java:134) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyFunction.call(PyFunction.java:317) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at com.dtmilano.android.viewclient$py.setAlarm$71(C:\AndroidViewClient-master\AndroidViewClient\src\com\dtmilano\android\viewclient.py:1395) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at com.dtmilano.android.viewclient$py.call_function(C:\AndroidViewClient-master\AndroidViewClient\src\com\dtmilano\android\viewclient.py) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyTableCode.call(PyTableCode.java:165) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyBaseCode.call(PyBaseCode.java:134) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyFunction.call(PyFunction.java:317) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at com.dtmilano.android.viewclient$py.connectToDeviceOrExit$72(C:\AndroidViewClient-master\AndroidViewClient\src\com\dtmilano\android\viewclient.py:1463) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at com.dtmilano.android.viewclient$py.call_function(C:\AndroidViewClient-master\AndroidViewClient\src\com\dtmilano\android\viewclient.py) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyTableCode.call(PyTableCode.java:165) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyBaseCode.call(PyBaseCode.java:301) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyFunction.function___call__(PyFunction.java:376) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyFunction.call(PyFunction.java:371) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyFunction.call(PyFunction.java:366) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyObject._callextra(PyObject.java:527) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.pycode._pyx0.f$0(C:\AndroidViewClient-master\AndroidViewClient\tools\dump:131) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.pycode._pyx0.call_function(C:\AndroidViewClient-master\AndroidViewClient\tools\dump) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyTableCode.call(PyTableCode.java:165) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.PyCode.call(PyCode.java:18) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.Py.runCode(Py.java:1275) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.core.builtin.execfile_flags(builtin.java:522) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:225) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at com.android.monkeyrunner.ScriptRunner.run(ScriptRunner.java:116) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at com.android.monkeyrunner.MonkeyRunnerStarter.run(MonkeyRunnerStarter.java:77) 140509 17:19:12.884:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] at com.android.monkeyrunner.MonkeyRunnerStarter.main(MonkeyRunnerStarter.java:189)
Don't know how to get it? Need help please guide me.
android - 是否可以在不使用 AndroidViewClient 对整个视图层次结构树执行转储的情况下刷新特定视图?
我需要一种方法来监视一些视图参数(例如捕捉它启用的时刻等)
为此,我认为我需要刷新单个视图的可能性,因为对整个视图层次结构树执行转储需要太多时间。
是否可以刷新特定视图?
有没有其他方法可以监视特定视图参数而不执行转储到整个视图树?
mobile - Androidviewclient 在 Android4.4.2 操作系统上不显示唯一 ID
具有 Android 4.4.2 Kitkat OS 设备的设备不会显示唯一 ID。以下是我在示例中使用的代码。
三星 OS4.4.2 - 在 Nexus5 和 OS 4.4.2 上观察到相同的行为
LG G2 操作系统 4.2
此外, vc.findViewById('id/tv_search').type('Donald') 不起作用。但是 ID-'id/no_id/23' 在所有设备上都可以正常工作。
请帮我解决这个问题。
monkeyrunner - 在 Androidviewclient(版本 3.2.0)中,是否有任何 api 来获取文本的唯一 ID
我是 androidviewclient 自动化的新手。请通过回答以下问题来帮助我:
- 在 Androidviewclient(版本 3.2.0)中,是否有任何 api 来获取文本的唯一 ID。
- 是否有适用于 AndroidViewClient(3.2.0 版本)的文档。我尝试在网上搜索,但只获得示例。
android - `AndroidViewClient` 不会更新消失的视图?
在某些 Android 应用程序上运行我的脚本时AndroidViewClient
,我区分了一个表示应用程序仍在加载的视图。
我开始一个While
带有内部延迟和刷新的循环,如下所示:
refresh()
函数执行整个视图转储:
最后应用程序完全打开,LoadingApp
不再出现视图。
我想当应用程序打开但变量 never got时执行第一个LoadingApp
变量之后,它仍然保持应用程序加载时收到的值。 None
refresh()
LoadingApp
None
所以我的While
循环变得无限
我想这是AndroidViewClient
错误。
如果在应用程序打开时使用它会在第一次完成时 LoadingApp = vc.findViewWithAttributeOrRaise("text", u'Loading\nMiLAB')
引发异常。refresh()
所以AndroidViewClient
现在找不到这个视图(这是正确的!)但它的容器(变量)仍然包含旧的、错误的、未更新的值。
更新:
我的While
循环代码是
我收到的输出是:
这是我在加载应用程序时收到的,当它已经加载时,甚至当我已经关闭了应用程序时。
所以我认为问题是:当视图不再出现时, LoadingMiLAB
视图数据不会被接收到的对象覆盖。None
我设置 DEBUG
,DEBUG_RECEIVED
并DEBUG_TREE
进入viewclient.py
。TRUE
这些是我在文件中所做的唯一viewclient.py
更改adbclient.py
。
我不使用View.setVisibility(View.GONE)
或更改任何其他标志/参数。
我使用您的culebra
脚本及其默认设置。我在那里更改的唯一参数是创建的(输出)脚本文件名和目标。
当我添加print vc.findViewWithText(u'Loading\nMiLAB').getVisibility()
代码时,我-1
在加载应用程序并显示视图时看到。
当应用程序加载(并且视图消失)时,我收到了
我用过vc.findViewWithText(u'Loading\nMiLAB').getVisibility()
,没有vc.findViewWithTextOrRaise(u'Loading\nMiLAB').getVisibility()
因为这会在加载应用程序并且不再出现视图时引发错误。
我正在使用Windows 7
OS PC
UPD2:
While
我在循环中 添加了一个异常。
现在我的脚本退出循环并在视图不再出现While
时继续继续。LoadingMiLAB
最终更新
这是我的错。我的refresh()
函数实际上创建了local
变量,而不是刷新了global
视图状态。在将它们声明为global
我的refresh()
功能后完美!
android - 在 macOSX 上配置 AndroidViewClient 和 Monkeyrunner
我正在尝试安装 AndroidViewClient 但有很多问题。我在 dtmilano 的 github 上下载了它。我在小牛队,我是 python 新手。我知道如何使用 Monkeyrunner,但自从我下载了 AndroidViewClient,我完全迷失了!
Si按照github上的分步说明进行操作!当我尝试启动 ./dump 时,我收到了这条消息:
这是我的环境变量:
如果我cd $ANDROID_VIEW_CLIENT_HOME
不能执行脚本,我会得到我的 AndroidViewClient 文件夹。
当我这样做时:python check-import.py --debug
,我得到了这个:
任何人都可以帮助我吗?我已经两天了,我不知道我能做什么。我尝试了很多东西。删除 AndroidViewClient / 重新安装它,但它总是相同的结果
android - 如何在Androidviewclient中查找父母的孩子数量
我正在尝试自动化蓝牙测试用例。扫描后,我想获取可用和配对设备的列表和数量。进一步检查我的参考设备名称是否存在于 DUT 列表中。有什么方法可以显示和遍历任何父级(可用和配对设备)的层次结构,并且只有文本选项(因为大多数内置遍历选项都带有 Class ID、no_id、Test 等)。如果我想运行一个循环来搜索 DUT 中的 Ref 设备,如何通过 Androidviewclient 3.2 和 monkeyrunner 来实现。