CheckBox的Selenium isSelected()方法总是为Android返回false

时间:2016-06-15 01:05:41

标签: android selenium automation appium

我的Android应用中有一个复选框列表,我需要测试一下。因此,当我使用isSelected()方法时,无论是否选中此复选框,它始终返回false。 试图使用findelementById()和byXpath()。结果相同。

以下是我使用的代码部分:

WebElement checkBox = driver.findElementById(appType + id);
    if (!checkBox.isSelected()){
        Reporter.log(backupDataType + " checkbox isn't checked. clicking on it...", true);
        ...}

使用Xpath:

checkBox = driver.findElementByXPath("//android.widget.CheckBox[@resource-id='" + appType + checkSms + "']");
    if (!driver.findElementByXPath("//android.widget.CheckBox[@resource-id='" + appType + checkSms + "']").isSelected()){
    Reporter.log(backupDataType + " checkbox isn't checked. clicking on it...", true);
    ...}

元素的路径是正确的,因为它总是点击它。无论是否检查过。

1 个答案:

答案 0 :(得分:0)

考虑到您使用的是Android复选框小部件,您应尝试使用getAttribute的{​​{1}}属性,如下所示 -

WebElement

P.S - 尝试保存WebElement element = <find element by your locator strategy>; // in your case driver.findElementByXPath("//android.widget.CheckBox[@resource-id='" + appType + checkSms + "']"); String checkboxAttribute = element.getAttribute("checked"); if(!checkboxAttribute.equalsIgnoreCase("true")) { Reporter.log(backupDataType + " checkbox isn't checked. clicking on it...", true); ... } 而不是再次找到它。