В Selenium Webdriver ExpectedCondition.elementToBeClickable не ожидает, пока индикатор выполнения исчезнет

Этот вопрос похож на приведенный ниже:
то есть как ждать, пока исчезнет индикатор Progress.
Как динамически ждать, пока индикатор загрузки полностью загрузится в Selenium Webdriver?

Мой немного отличается. Здесь, когда появляется индикатор выполнения, все элементы отключены. Поэтому я использую явное ожидание, но все еще получаю исключение.

Сценарий: На странице регистрации, после предоставления всех деталей, скрипт нажимает кнопку «Создать учетную запись». В этот момент появляется круговой индикатор выполнения, который сохраняется в течение 1 или 2 секунд. Если введенный пароль недействителен (проверяется только с недействительными паролями), в верхней части страницы регистрации отображается сообщение об ошибке. Теперь мне нужно нажать на кнопку «Отмена» и повторить процесс.

Когда появится индикатор выполнения, вся страница будет отключена. Только после исчезновения индикатора выполнения пользователь сможет продолжить.

Я написал код для того же, используя WebDriverWait, как показано ниже:

WebDriverWait myWaitVar = new WebDriverWait(driver,20);

После нажатия кнопки «Создать аккаунт» появляется индикатор выполнения, и я жду, пока не появится кнопка «Отмена».

//Click on Create Account btn:
driver.findElement(By.id("createAccount")).click();

//Wait till "Cancel" button is showing up. At cases, it may take some time.
myWaitVar.until(ExpectedConditions.elementToBeClickable (By.id("cancelRegister")));

//click on Cancel btn:
driver.findElement(By.id("cancelRegister")).click();

Когда я выполняю приведенный выше код, каждый раз получаюNoSuchElementException на последней строке.

Я пробовал сExpectedCondition.visibilityOfElement() но вот и получаюNoSuchElementException.

Затем я попытался использовать метод сна вместо ожидания.

Thread.sleep(3000);

Теперь скрипт работает нормально.

Я не мог понять почемуWebDriverWait не ждал, пока исчезнет индикатор выполнения?

Он успешно проанализировалelementToBeClickable() но все равно выбрасываю исключение, когда нажимаем на него.

Ответы на вопрос(2)

Ваш ответ на вопрос