2016-06-15 3 views
1

У меня есть список флажков в приложении для Android, которые мне нужно проверить. Поэтому, когда я использую метод isSelected(), он всегда возвращает false, независимо от того, установлен ли этот флажок или нет. Пытался использовать findelementById() и byXpath(). Тот же результат.Метод Selenium isSelected() для CheckBox всегда возвращает false для Android

Вот части кода, что я использовал:

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

Учитывая вы используете андроида флажок виджета, вы должны попробовать использовать getAttribute свойство WebElement следующим образом-

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); 
    ... 
} 

PS - попробуйте и сохранение практики в WebElement вместо того, чтобы найти его снова ,

+0

Спасибо, что сработали! Я обычно сберегаю веб-элементов. В этом случае я просто пытался использовать разные комбинации, чтобы заставить его работать. – DiTest

Смежные вопросы