Множественный выбор в селене - PullRequest
1 голос
/ 29 января 2020

После ввода имени сотрудника в поле поиска в нем появилось 7 имен. Из 7 мне нужно выбрать только 4 имени. Мой следующий код выбирает 2 сотрудников из результатов поиска.

Actions actions = new Actions(driver)
actions.keyDown(Keys.CONTROL)
       .click(employeeList.get(0))
       .click(employeeList.get(4))
       .keyUp(Keys.CONTROL)
       .build();
       .perform();

, но когда тот же код пытается использовать его для l oop, он не выбирает все элементы.

public void selectEmployees() throws Exception {
    Actions actions = new Actions(driver);
    for (int i=0; i<employeeList.size(); i++)  //Employee list is giving the size 7.
    {       
            actions.keyDown(Keys.CONTROL)
                   .click(employeeList.get(i))
                   .keyUp(Keys.CONTROL)
                   .build()
                   .perform();
            }
        }

Попытка выбрать всех сотрудников с помощью l oop, но она выбрала 1,3,5,7 записи, а затем отменила выбор 3,5,7 записи, только первая остается выбранной. Помощь

1 Ответ

3 голосов
/ 30 января 2020

Я рекомендую, если вы еще не пытались не использовать каждую итерацию l oop с одним и тем же экземпляром действия. Перед тем, как ввести l oop, попробуйте один раз нажать клавишу управления. Внутри l oop щелкните только те элементы списка, через которые проходит l oop. После l oop, включите управление и постройте действие только один раз.

Это может выглядеть так:

public void selectEmployees() throws Exception {
    Actions actions = new Actions(driver);
    actions.keyDown(Keys.CONTROL);
    for (int i=0; i<employeeList.size(); i++) {       
        actions.click(employeeList.get(i))
    }
    actions.
        .keyUp(Keys.CONTROL)
        .build()
        .perform();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...