是否有一个亚洲开发银行外壳命令告诉我文本视图的内容



我一直在Linux上编写这个脚本,目的是自动化我正在开发的应用程序的某些部分。我的下一个目标是自动化应用程序的登录过程,这相当于点击几个按钮,并在网站上的一个单独登录页面中输入一个6位数的代码。我们使用ADB shell脚本和Python脚本的组合来完成这项工作,Python脚本为需要登录的网页运行Selenium网络驱动程序等等。

这就把我留在了现在的位置;我发现了如何使用ADB shell命令在特定坐标下输入按钮按压(或者更确切地说是"点击"本身(,所以这是问题的一半。。。然而,我找不到专门获取TextView内容以在脚本中使用所需的命令;它是用于登录流的,所以我需要将它分配给脚本中的一个变量,就像您分配一个目录一样,如果可能的话。。。

(即$TEXTCONTENT=******,其中*s是6位代码(

因此,当Selenium网络驱动程序需要登录并输入6位代码时,可以稍后使用它。我要找一个特定的命令来获取这个吗?

您可以在此处使用uiautomator。有一个Python包uiautomator可以提供帮助:

from uiautomator import device as d
d(resourceId="id/mytextfield").text

或者,如果您想以更手动的方式进行操作,可以使用adb shell uiautomator dump将屏幕内容转储到XML文件中。然后您可以在本地adb pull它,然后您的脚本可以在那里解析文本的XML。

您可以使用AndroidViewClient来查找视图并与之交互。

我不知道你正在使用的应用程序,所以我的例子是基于计算器的。

如果您在计算器上键入任何数字并运行此脚本

#! /usr/bin/env python3
# -*- coding: utf-8 -*-
from com.dtmilano.android.viewclient import ViewClient
vc = ViewClient(*ViewClient.connectToDeviceOrExit())
vc.dump()
formula = vc.findViewByIdOrRaise("com.google.android.calculator:id/formula")
print(formula.getText())

它会打印那个数字。

最新更新