0

Я использую приведенный ниже код. Тест не терпит неудачу, но код не проверяет флажки.Как проверить все флажки по одному в веб-драйвере селена с помощью java?

@Test(priority=11) 
public void Test_CheckBox_Check()throws InterruptedException { 

    List<WebElement> els = driver.findElements(By.xpath("//md-checkbox[@aria-checked='false']")); 
    System.out.println(Integer.toString(els.size())); 
    for (WebElement el : els) { 

     el.click(); 

    } 
} 

Test Case is not failing Xptha and the elements

enter image description here

+0

Вы можете расширить DIV выше принимаемой в данный момент развернутом на скриншоте? Один со значением класса - «md-container md-ink-ripple». Я думаю, что флажок находится внутри этого div. – Grasshopper

+0

Пожалуйста, посмотрите обновленный снимок экрана. – HillHacker

+0

Можете ли вы попытаться нажать на этот div вместо этого или внутри? Не совсем уверен, но я думаю, что это должно сработать. – Grasshopper

ответ

1

локатора вы используете, может быть причиной проблемы попробуйте ниже:

//div[@class='ng-scope flex-20']//following::md-checkbox**[@role='checkbox']** 

Вы можете пропустить часть в звездочку, если все флажки, отмеченные флажком md-check.

Ниже код работал для меня в другом случае:

List<WebElement> checkboxes = driver.findElements(By.xpath("//div[@class='control-group']//following::input[@type='checkbox']")); 
     for(WebElement check:checkboxes){ 
      check.click(); 
     } 
+0

НЕИСПРАВНО: Test_CheckBox_Check org.openqa.selenium.InvalidSelectorException: данный селектор // div [@ class = 'ng-scope flex-20'] // следующий :: md-checkbox ** [@ role = 'checkbox'] ** либо недействителен, либо не приводит к использованию WebElement. Произошла следующая ошибка: InvalidSelectorError: не удалось найти элемент с выражением xpath // div [@ class = 'ng-scope flex-20'] // следующее :: md-checkbox ** [@ role = 'checkbox' ] ** из-за следующей ошибки: TypeError: выражение не может быть преобразовано для возврата указанного типа. – HillHacker

+0

Выше исключение уже сейчас. Пожалуйста, посмотрите и помогите мне в этом. – HillHacker

0

После добавления некоторых ждать его работы

@Test(priority=11) 
public void Test_CheckBox_Check()throws InterruptedException { 

    Thread.sleep(2000); 

    List<WebElement> els = driver.findElements(By.xpath("//md-checkbox/div/div[@class='md-icon']")); 
    System.out.println(Integer.toString(els.size())); 
    for (WebElement el : els) { 

     Thread.sleep(2000); 

     el.click(); 

     System.out.println(el.getText()); 
     driver.findElement(By.xpath("//div[@class='col-xs-1']")).click(); 

    }