У меня есть 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, о котором идет речь, а не в комментариях
<button type = "button" ng-click = "delete ()" ng-disabled = "readonly || isNew" class = "btn btn-dangerous btn-sm"> <span class = "glyphicon glyphicon-trash"> < / span> Удалить </button>
Я получаю следующую ошибку: 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>
Публикуйте это в вопросе (вы можете его редактировать), а не в комментариях. Сообщите также, какой локатор вы используете для панели прогресса и deleteButton.
Привет, я предоставил все подробности.
поделитесь соответствующим HTML и точными указателями, которые вы использовали.