我的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);
...}
元素的路径是正确的,因为它总是点击它。无论是否检查过。
答案 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);
...
}
而不是再次找到它。