无法单击Appium中LinearLayout下的元素

时间:2018-06-19 07:40:03

标签: java android automation appium

我想在注册时点击国家/地区代码页上的国家/地区。 但是,我已经尝试了每个findbyElement方法,我可以单击该元素,但它总是导致

  

没有这样的元素错误。

任何人都可以帮助我。

PS:我使用过xpathIDList。但它不起作用,如果您对尝试过的方法有任何想法,请分享,因为我是Appium的新手,可能是错的。 谢谢

截图

Dumpfile screenshot DumpfileforUIautomator

Please see the screenshot

Checkbox selected screenshot

3 个答案:

答案 0 :(得分:0)

您可以尝试使用xpathname

driver.findElement(By.xpath("//android.widget.TextView[@text='India']")).click();

driver.findElement(By.Name("India")).click();

driver.findElement(new By.ByName("India")).click();

driver.findElement(By.xpath("//android.widget.TextView[@index='2']")).click();

答案 1 :(得分:0)

问题在于您找到了错误的控件,您应该定位单选按钮/复选框控件,而不是旁边的标签。

尝试找到该控件,而不是标签。

driver.findElement(By.className("CheckBox Locator")).click();

尝试以下解决方案之一:

List<MobileElements>  listElement = driver.findElements(By.id("com.bondevalue.BondEvalue:id/country_rb"))

System.out.println("Size: " + listElement.size());

然后检查这是否返回任何结果。如果它确实找到了元素。

比你必须找到父布局com.bondevalue.BondEvalue:id/listlayout并找到列表中的每一个,找到所示的子元素(复选框),并在找到所需的逐个文本(com.bondevalue.BondEvalue:id/labelk)时单击复选框(com.bondevalue.BondEvalue:id/country_rb)。

希望这会有所帮助......

答案 2 :(得分:0)

根据复选框控件的屏幕截图,资源ID看起来是-not-唯一的,这可能就是为什么将该元素指定为NAF(不便于访问)的原因。

因此,我将改为紧随其后访问textview,然后使用前导兄弟来访问所需的复选框:

driver.findElement(By.xpath("//android.widget.TextView[@text='+91']/preceding-sibling::android.widget.CheckBox"))