Selenium Webdriver: как подождать, пока индикатор выполнения не исчезнет, ​​и нажать кнопку

У меня есть 3 тестовых функции, одна создает пользователя, а затем вторая выбирает созданного пользователя из списка, а третья удаляет его. Функция создания и сохранения пользователя работает отлично, но в функции удаления, несмотря на добавление различных ожиданий, она ищет кнопку удаления, когда индикатор выполнения все еще перекрывает ее, и дает сбой. Чтобы еще больше добавить, я пробовал решение, указанное в других вопросах, ничего не работает. Мой сценарий заключается в том, что я хочу подождать, пока индикатор выполнения не исчезнет, ​​а затем, когда кнопка удаления станет активной, нажмите ее, кнопка не будет нажата.

Прилагаю код того же:

public void deleteUser(String username)
{
    wait= new WebDriverWait(driver,20);
    wait.until(ExpectedConditions.invisibilityOfElementLocated(progressbar));
    System.out.println(driver.findElement(deleteButton).getText());
    try
    {

       wait.until(ExpectedConditions.elementToBeClickable(deleteButton));
       driver.findElement(deleteButton).click();
       System.out.println("Button clicked");
       wait.until(ExpectedConditions.alertIsPresent());
    }
    catch (Exception e)
    {
      System.out.println(e);
    }

Ошибка, которую я получаю:

org.openqa.selenium.WebDriverException: unknown error: Element <button type = "button" ng-click = "delete()" ng-disabled = "readonly || isNew" class = "btn btn-danger btn-sm">...</button> is not clickable at point (786, 185). Other element would receive the click: <div ng-show = "inProcess" class = "progress">...</div>

HTML-код для удаления и индикатора выполнения:

<button type = "button" ng-click = "delete()" ng-disabled = "readonly || isNew" class = "btn btn-danger btn-sm">
        <span class = "glyphicon glyphicon-trash"></span>
        Delete
    </button>

<div ng-show = "inProcess" class = "progress ng-hide">
<div class = "progress-bar progress-bar-striped active" role = "progressbar" aria-valuenow = "45" aria-valuemin = "0" aria-valuemax = "100" style = "width: 100%">
    <span>Processing ...</span>
</div>

поделитесь соответствующим HTML и точными указателями, которые вы использовали.

Shivam Mishra 07.08.2018 09:20

Какую ошибку вы получаете? И, пожалуйста, поделитесь HTML, о котором идет речь, а не в комментариях

Andrei Suvorkov 07.08.2018 09:21

<button type = "button" ng-click = "delete ()" ng-disabled = "readonly || isNew" class = "btn btn-dangerous btn-sm"> <span class = "glyphicon glyphicon-trash"> < / span> Удалить </button>

kritika agarwal 07.08.2018 09:21

Я получаю следующую ошибку: org.openqa.selenium.WebDriverException: unknown error: Element <button type = "button" ng-click = "delete ()" ng-disabled = "readonly || isNew" class = "btn btn -danger btn-sm "> ... </button> не активен в точке (786, 185). Другой элемент получит щелчок: <div ng-show = "inProcess" class = "progress"> ... </div>

kritika agarwal 07.08.2018 09:22

Публикуйте это в вопросе (вы можете его редактировать), а не в комментариях. Сообщите также, какой локатор вы используете для панели прогресса и deleteButton.

Andrei Suvorkov 07.08.2018 09:23

Привет, я предоставил все подробности.

kritika agarwal 07.08.2018 09:28
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
6
27
0

Другие вопросы по теме