我想在注册时点击国家/地区代码页上的国家/地区。
但是,我已经尝试了每个findbyElement
方法,我可以单击该元素,但它总是导致
没有这样的元素错误。
任何人都可以帮助我。
PS:我使用过xpath
,ID
和List
。但它不起作用,如果您对尝试过的方法有任何想法,请分享,因为我是Appium的新手,可能是错的。
谢谢
答案 0 :(得分:0)
您可以尝试使用xpath
或name
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"))