尝试了以下可能性,但不起作用。
driver.findElementByXPath("//android.widget.TextView[@text='World Music']").click();
driver.findElementByXPath("//android.widget.TextView[@index='11']").click();
driver.findElementByAndroidUIAutomator("text(\"World Music\")").click();
答案 0 :(得分:0)
使用 Appium Desktop Inspector 检查您的应用。它将显示可访问性ID,ID或XPath。如果您没有唯一的ID或可访问性ID,则可以使用appium桌面检查器中显示的 xpath 。
答案 1 :(得分:0)
我可以想到的一种方法是找到要单击的复选框的索引,然后单击该索引上的复选框。
如下所示:
List <MobileElement> textLabels = driver.findElements (By.className ("android.widget.TextView");
List <MobileElement> checkboxes = driver.findElements (By.className ("android.widget.Checkbox");
for (int i = 0; i < textLabels.size (); i++) {
MobileElement label = textLabels.get (i);
if (label.getText ().equals ("<your checkbox label>")) {
checkboxes.get (i).click ();
}
}
在这里您还可以实现逻辑来检查多个复选框。
答案 2 :(得分:0)
我在下面的代码中使用坐标尝试过,对我来说很有效...
TouchAction t = new TouchAction(driver);
wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.id("com.raaga.android:id/tv_language")));
t.tap(int x, int y).perform();
如果有其他更好的方法,请发布。