0

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

1)图片:1 在此处输入图像描述

2)图片:2

在此处输入图像描述 driver.findElement(By.name("Biscuit")).click();

4

2 回答 2

0

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

于 2016-08-17T15:34:00.647 回答
0

即使在 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

于 2016-08-16T08:53:37.500 回答