如果两个元素在appium中具有相同的资源ID,该怎么办?

时间:2017-09-23 21:03:53

标签: appium

当appium的UIAutomator中列表视图中的两个元素的resource-id相同时该怎么办?

在下面的图片中: -

这两个元素具有相同的资源ID:-net.one97.paytm:id / smart_list_root

Figure 1 Figure 1

5 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用xpath或名称,如下所示:

方式1:

driver.findElement(By.xpath("//android.widget.TextView[@text='Mobile Prepaid']"));
driver.findElement(By.xpath("//android.widget.TextView[@text='Mobile Postpaid']"));

方式2:

driver.findElement(By.name("Mobile Prepaid"));
driver.findElement(By.name("Mobile Postpaid"));

答案 1 :(得分:0)

使用xpath获取文本:

String text = driver.findElement(By.xpath("//android.widget.RelativeLayout")).getText();

比较文本并选择正确的UIElement以执行所需的操作。

if(text.equals("Mobile Prepaid")){ ...... }

答案 2 :(得分:0)

将文本视图的xpath的多个元素作为

"//android.widget.TextView[@text='Mobile Prepaid']"

希望它能运作

答案 3 :(得分:0)

您可以使用By.name之类的,

driver.findElement(By.name("Mobile Prepaid"));
driver.findElement(By.name("Mobile Postpaid"));

答案 4 :(得分:0)

String ac = driver.findElement(By.xpath("(//*[@resource-id = 'account-balance-amount'])[1]")).getText();

String ac = driver.findElement(By.xpath("(//*[@resource-id = 'account-balance-amount'])[2]")).getText();