【问题标题】:How to find elements on android hybrid app using appium如何使用 appium 在 android 混合应用程序上查找元素
【发布时间】:2015-09-27 22:06:08
【问题描述】:
我正在尝试使用 Appium 测试混合应用程序。
我无法使用Appium 检查员或uiautomatorviewer 检查身份。它只显示一个应用程序类。
我尝试使用 Web 应用程序检查 id 元素,但它不起作用。
所以我的问题是查找/获取应用程序元素的另一种方法是什么?
已编辑:
xpath 没有帮助。这是我的代码:
public void findButton() {
driver.findElement(By.xpath("//html/body/div[5]/div/div/div[1]/div[1]/div[3]/div[1]/div[2]/div[3]/div[2]"));
}
【问题讨论】:
标签:
selenium-webdriver
automated-tests
ui-automation
appium
【解决方案1】:
Web 应用程序通常没有我们期望使用的所有元素。相反,您可以做什么,使用类名/索引,过滤它并将其用作您的 xpath。
【解决方案2】:
第 1 步 - 需要将控件从本机应用程序移动到 Web 视图(使用 webview 呈现页面)
driver.context("web_view");
第 2 步 - 通过 USB 将设备连接到系统,并使用 URL chrome://inspect ...打开浏览器。
第 3 步 - 识别特定元素
【解决方案3】:
将视图更改为
网页视图。
Set contextNames = driver.getContextHandles();
for (String contextName : contextNames) {
System.out.println(contextNames);
}
driver.context("WEBVIEW_com.xxx.yyy.zzzz");
它将上下文打印为 Native ,WEBVIEW_com.xxx.yyy.zzzz ,然后你
必须将上下文更改为 WEBVIEW 才能自动化混合应用程序。
eg: driver.context("WEBVIEW_com.xxx.yyy.zzzz");
driver.context -->会切换上下文