没有唯一的ID /类别名称时,如何选择appium中的复选框?

时间:2018-09-22 07:36:45

标签: android checkbox appium appium-android

如何选择以下屏幕截图中的复选框? enter image description here

尝试了以下可能性,但不起作用。

driver.findElementByXPath("//android.widget.TextView[@text='World Music']").click();
driver.findElementByXPath("//android.widget.TextView[@index='11']").click();
driver.findElementByAndroidUIAutomator("text(\"World Music\")").click();

3 个答案:

答案 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();

如果有其他更好的方法,请发布。