如何获取移动应用程序 (Android/iOS) 中使用的 ui 元素的 ID、名称或 x 路径以进行移动自动化测试?
How can I get IDs, names or x paths for ui elements used in a mobile app (Android/iOS) for mobile automation testing?
我想知道如何获取移动应用程序中使用的 UI 元素的 ID 或名称,这些元素用于移动自动化测试,例如 appium、monkey-talk、xamarian 等
我的解释是针对我的系统 (Windows 7),但我的解释也应该很容易翻译到其他系统。
先决条件:
- 当你想做 Android 自动化测试时,你应该总是安装 Android SDK,所以我假设你已经这样做了。让我们调用 sdk 文件夹的路径
<ANDROID_HOME>
(包括 sdk
文件夹本身)
- 运行
<ANDROID_HOME>/SDK Manager.exe
。 Select 最新的 Android SDK 工具和 Android SDK 平台工具并安装它们
- 连接您要测试的设备:
- 要么 运行 模拟器 - 它会自动连接到您的系统中
- 或者连接物理设备并安装正确的 USB 驱动程序。您可以通过 运行 命令
<ANDROID_HOME/platform-tools/adb.exe devices
验证设备是否已连接 - 如果列表中至少有一个设备,您就可以开始了。
一旦你拥有了所有这些:
运行<ANDROID_HOME>/tools/uiautomatorviewer.bat
。这将打开一个屏幕,您可以在其中截取连接设备的屏幕截图。见下图:
截图是点击紫色矩形下方的按钮截取的,是我人为添加的。红色的是工具添加的,因为我将鼠标悬停在感兴趣的元素上。您可以观察右侧的元素属性。这些通常是您用于测试本机应用程序的属性。
如果您想测试 WebView
then it would be better if you use Chrome remote debugging 中加载的元素以获得正确的选择器。
脚注:
我看到你正在迈出移动自动化测试的第一步,这是我非常感兴趣的领域,我可以建议你看一下 ATMOSPHERE Android 测试自动化框架。 免责声明:我是它的创造者之一。仍然 - 它是免费提供和开源的。我们也相信它提供了其他框架不支持的功能,并且很容易上手,所以我希望它对您有用!
C#
就我而言,这段代码解决了我的问题:
private IApp _app = ScenarioContext.Current.Get<IApp>("Application");
private readonly ILoginScreen _loginScreen;
private readonly IMainMenuScreen _mainMenuScreen;
public Login(ILoginScreen loginScreen, IMainMenuScreen mainMenuScreen)
{
_app.Repl();
_loginScreen = loginScreen;
_mainMenuScreen = mainMenuScreen;
}
我正在使用 Xamarin 使用 Gherkin 语言,其中 Repl() 命令会打开一个新的 cmd,您可以在其中键入树命令并在您所在的特定屏幕上获取 ui 元素的树结构。如下图所示:
第 1 步:通过单击检查器按钮启动 appium 检查器:
第二步:设置APK/IPA文件路径(应用文件路径)如下图:
第 3 步:单击“开始会话”,现在您将导航到“记录器”window:
单击应用程序 UI 并执行所需的操作“选定元素”选项卡,即点击、用于输入文本的发送键等。
选定的 UI 元素将在录制完我们可以导出 Java 文件的所有元素的 UI 元素后导出到记录器选项卡。
我想知道如何获取移动应用程序中使用的 UI 元素的 ID 或名称,这些元素用于移动自动化测试,例如 appium、monkey-talk、xamarian 等
我的解释是针对我的系统 (Windows 7),但我的解释也应该很容易翻译到其他系统。
先决条件:
- 当你想做 Android 自动化测试时,你应该总是安装 Android SDK,所以我假设你已经这样做了。让我们调用 sdk 文件夹的路径
<ANDROID_HOME>
(包括sdk
文件夹本身) - 运行
<ANDROID_HOME>/SDK Manager.exe
。 Select 最新的 Android SDK 工具和 Android SDK 平台工具并安装它们 - 连接您要测试的设备:
- 要么 运行 模拟器 - 它会自动连接到您的系统中
- 或者连接物理设备并安装正确的 USB 驱动程序。您可以通过 运行 命令
<ANDROID_HOME/platform-tools/adb.exe devices
验证设备是否已连接 - 如果列表中至少有一个设备,您就可以开始了。
一旦你拥有了所有这些:
运行<ANDROID_HOME>/tools/uiautomatorviewer.bat
。这将打开一个屏幕,您可以在其中截取连接设备的屏幕截图。见下图:
截图是点击紫色矩形下方的按钮截取的,是我人为添加的。红色的是工具添加的,因为我将鼠标悬停在感兴趣的元素上。您可以观察右侧的元素属性。这些通常是您用于测试本机应用程序的属性。
如果您想测试 WebView
then it would be better if you use Chrome remote debugging 中加载的元素以获得正确的选择器。
脚注:
我看到你正在迈出移动自动化测试的第一步,这是我非常感兴趣的领域,我可以建议你看一下 ATMOSPHERE Android 测试自动化框架。 免责声明:我是它的创造者之一。仍然 - 它是免费提供和开源的。我们也相信它提供了其他框架不支持的功能,并且很容易上手,所以我希望它对您有用!
C#
就我而言,这段代码解决了我的问题:
private IApp _app = ScenarioContext.Current.Get<IApp>("Application");
private readonly ILoginScreen _loginScreen;
private readonly IMainMenuScreen _mainMenuScreen;
public Login(ILoginScreen loginScreen, IMainMenuScreen mainMenuScreen)
{
_app.Repl();
_loginScreen = loginScreen;
_mainMenuScreen = mainMenuScreen;
}
我正在使用 Xamarin 使用 Gherkin 语言,其中 Repl() 命令会打开一个新的 cmd,您可以在其中键入树命令并在您所在的特定屏幕上获取 ui 元素的树结构。如下图所示:
第 1 步:通过单击检查器按钮启动 appium 检查器:
第二步:设置APK/IPA文件路径(应用文件路径)如下图:
第 3 步:单击“开始会话”,现在您将导航到“记录器”window:
单击应用程序 UI 并执行所需的操作“选定元素”选项卡,即点击、用于输入文本的发送键等。
选定的 UI 元素将在录制完我们可以导出 Java 文件的所有元素的 UI 元素后导出到记录器选项卡。