【发布时间】:2018-10-15 07:00:50
【问题描述】:
我有两个与我无法解决的同一问题相关的问题。我正在创建一个 appium 程序来测试原生 android 应用程序。我正在使用 Java。 在登录之前,应用程序中有一个更改环境的选项。我将环境名称作为参数传递给我的 appium 类,并使用 Xpath 查找与提供的环境对应的元素。 问题:每次更改为特定环境名称(暂存)时,我将哪个环境名称作为参数传递都没有关系。 问题:
可能是什么原因造成的?
-
为什么当我使用带有 text 参数的 xpath 时,尽管 uiautomatorviewer 工具具有该 text 属性,但 appium 却无法找到该元素。
selectEnv = androidDriver.findElement(By.xpath("//android.widget.LinearLayout[@text='QA']"));
我提供了 2 个屏幕截图。第一个是一个实际的应用程序屏幕,其中包含来自 Android Studio Layout Inspector 的环境和属性列表。
第二个是列表中一项的 uiautomatorviewer 属性的屏幕截图。
new WebDriverWait(androidDriver, 30).until(ExpectedConditions.presenceOfElementLocated(id("md_contentRecyclerView")));
envContainer = androidDriver.findElement(By.id("md_contentRecyclerView"));
Assert.assertTrue(envContainer.isDisplayed());
if (env.equals("dev")) {
selectEnv = androidDriver.findElement(By.xpath("//android.widget.LinearLayout[@index='0']"));
selectEnv.click();
}
if (env.equals("QA")) {
selectEnv = androidDriver.findElement(By.xpath("//android.widget.LinearLayout[@index = '1']"));
selectEnv.click();
}
if (env.equals("Staging")) {
selectEnv = androidDriver.findElement(By.xpath("//android.widget.LinearLayout[@index='2']"));
selectEnv.click();
}
if (env.equals("Prod")) {
selectEnv = androidDriver.findElement(By.xpath("//android.widget.LinearLayout[@index='3']"));
selectEnv.click();
}
【问题讨论】:
-
您是否尝试使用 ID 而不是文本值选择它
-
不幸的是,这些特定元素没有 ID
标签: java android automated-tests appium