1

它不是重复的。

我正在Appium中编写自动化。我对自动化概念及其Appium本身相当陌生。我正在使用 java 客户端。

我有一个场景,我正在为其编写自动化的 android 应用程序必须获得 android 许可。我的应用程序导航到 Android 设置的以下设置页面,如下所示。

在此处输入图像描述

为了自动点击这个页面,我创建了一个代表这个屏幕的页面对象。在这种情况下,我只对切换Switch和学习如何获取它的状态感兴趣。

我可以像这样获得UI Automator Viewer的资源 ID。

在此处输入图像描述

所以我的初始化是这样来访问开关小部件的。

SwitchID { $("#switchWidget") }

显然,当我运行功能文件时,Appium无法找到此开关小部件。但是我可以在我正在处理的应用程序中自动化其他小部件。但我无法在这个 android 的设置屏幕上得到任何东西。

任何帮助都会受到高度重视。谢谢

4

3 回答 3

1

使用 java-client 我将通过类名获得开关。像这样的东西: driver.findElement(By.className("android.widget.Switch"))

不确定 groovy 客户端,但可能类似。

于 2016-09-14T19:28:32.697 回答
1

您可以访问 UI 上的任何可见组件。无论是按钮/开关还是其他任何东西。
有几种方法可以使用 Appium/Selenium 驱动程序访问元素 - 按名称/ id/ xpath 等。
使用 UIAutomator 捕获该可见元素的 id/name/ 内容描述,您就完成了!
在您的情况下,正如我在 UIAutomator 屏幕截图中看到的那样 - 您同时获得了 id 和 name。因此,您可以使用它们中的任何一个来单击所需的元素。
(您可以从 Appium 参考您的相关 groovy/java 语法)
http://appium.io/introduction.html

于 2016-09-14T11:25:59.330 回答
0

如果已经检查了开关怎么办?如果你点击你会禁用它...

尝试:

driver.find_element_by_xpath("//android.widget.Switch[@resource-id='android:id/switchWidget' and @checkable='true']")

这只会在可检查时获取您的元素

于 2017-12-05T10:30:09.553 回答