当两个元素在appium中具有相同的资源ID时该怎么办?
当appium的UIAutomator中的列表视图中的两个元素的资源ID是相同时要做什么?当两个元素在appium中具有相同的资源ID时该怎么办?
在这里下面的图片: -
两个元素都具有相同的资源ID:-net.one97.paytm:ID/smart_list_root
在这种情况下,你可以使用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"));
获取文本使用XPath:
String text = driver.findElement(By.xpath("//android.widget.RelativeLayout")).getText();
比较文本并选择正确的UIElement来执行所需的操作。
if(text.equals("Mobile Prepaid")){ ...... }
多个元素的XPath的TextView把它当作
"//android.widget.TextView[@text='Mobile Prepaid']"
希望它会工作
您可以使用By.name
一样,
driver.findElement(By.name("Mobile Prepaid"));
driver.findElement(By.name("Mobile Postpaid"));
这是行不通的,它显示无效的选择器 –
随着Appium 1.5名称选择器被删除。如果您使用1.5,请使用driver.findElement(By.xpath(“// android.widget.TextView [@ text ='Mobile Prepaid']”)) –
方法是正确的,但它没有点击那个元素 –