我是 Appium 的新手,想要查找元素 By.name,同时我正在从列表中搜索以便获得搜索文本匹配的结果,但它没有单击确切的名称匹配元素,即使它没有单击列表中的任何元素,可能是它试图单击输入的文本。不知道如何应用多个条件来查找元素。那么我们该怎么做呢?与此相关的附加图片:
2)图片:2
我是 Appium 的新手,想要查找元素 By.name,同时我正在从列表中搜索以便获得搜索文本匹配的结果,但它没有单击确切的名称匹配元素,即使它没有单击列表中的任何元素,可能是它试图单击输入的文本。不知道如何应用多个条件来查找元素。那么我们该怎么做呢?与此相关的附加图片:
2)图片:2
看起来产品列表中的所有元素都具有相同的 id。因此,您可以在产品列表中找到所有元素,然后使用 for 循环遍历每个元素。
List<WebElement> productList = driver.findElements(By.id("producttext"));
for(WebElement product : productList) {
String productText = product.getText();
if(productText.equalsIgnoreCase("Biscuit")) {
product.click();
}
}
上面的代码将存储当前屏幕上所有 id 为“producttext”的项目。for 循环将遍历每个元素。我添加了一个检查,当它找到带有文本“Biscuit”的元素时,它会单击该元素。您可以根据您的测试添加更多检查。
即使在 appium 中,我们也可以使用 xpath 应用更多条件来查找元素,对于上述情况,使用第二张图像和应用条件作为
driver.findElement(By.xpath("//android.widget.TextView[@text='Biscuit']")).click();
所以我们用两个条件实现它
1.className="android.widget.TextView" 和 text='Biscuit'
请注意 clickable=false 仍然没关系,它单击可点击的父级
更多详情: http: //www.software-testing-tutorials-automation.com/2015/10/ui-automator-viewer-get-android-app.html