无法在带有搜索列表的下拉列表中找到 Appium By.name 中的元素

Not able to find Element in Appium By.name in dropdown with search list

我是 Appium 的新手,想找到元素 By.name,同时我正在从列表中搜索,以便获得搜索文本匹配的结果,但它没有点击精确名称匹配元素,即使它不是单击列表中的任何元素,可能是它试图单击键入的文本。不知道如何应用多个条件来查找 element.So 我们该怎么做?附上与此相关的图片:

1)图片:1

2)图片:2

driver.findElement(By.name("Biscuit")).click();

我们也可以使用 xpath 来应用更多条件来查找元素,即使在 appium 中也是如此,对于上述情况,使用了第二张图像和应用条件作为 driver.findElement(By.xpath("//android.widget.TextView[@text='Biscuit']")).click();

所以我们用两个条件来实现

1.className="android.widget.TextView" 和文本='Biscuit'

注意 clickable=false 仍然没关系,它点击 clickable Parent

更多详情:http://www.software-testing-tutorials-automation.com/2015/10/ui-automator-viewer-get-android-app.html

产品列表中的所有元素似乎都具有相同的 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" 的元素时,它将单击该元素。您可以根据您的测试添加更多检查。