#java #selenium-webdriver
#java #selenium-webdriver
Вопрос:
Я хочу нажать на кнопку ok для оповещения в модальном, но не могу нажать на нее.
// Capturing alert message.
String alertMessage= driver.findElement(By.className("modal-header"))
.getText();
System.out.println(alertMessage);
String okButton= driver.findElement(By.xpath("//h4[contains(text(),'Woo Hoo! You have successfully registered! Look ou')]"))
.getText();
System.out.println(okButton);
driver.findElement(By.xpath("//button[contains(text(),'OK')]"))
.click();
Пробовал этот код, но он не работает.Это то, что я получаю в консоли
: неизвестная ошибка: элемент
<button type="button" class="close" ng-click="goTOLogin()">...</button>
недоступен для просмотра в точке (897, 161). Другой элемент получит щелчок:<div class="loader" style="display: block; opacity: 0.681626;"></div>
Это html-код:
<div id="registration" class="modal fade ng-scope in" role="dialog" style="display: block;">
<div class="modal-dialog modal-md add-brand">
<!-- Modal content-->
<div class="modal-content flat-modal">
<div class="modal-header">
<button type="button" class="close" ng-click="goTOLogin()">X</button>
<h4 class="modal-title common-title" style="" xpath="1">successfully registered</h4>
</div>
<div class="modal-body flat-body">
<div class="clearfix"></div>
<h4>Woo Hoo! You have successfully registered! Look out for the activation link in your email.</h4>
<div class="modal-footer text-left">
<button type="button" class="close" ng-click="goTOLogin()" style="">OK</button>
</div>
</div>
</div>
</div>
</div>
Комментарии:
1. Ваша кнопка отключена? Не могли бы вы добавить HTML-код?
2. Я опубликовал, пожалуйста, проверьте
3. Строка titleMessage= driver.findElement(с помощью.cssSelector(«//h4[@class=’modal-title common-title’]»)).getText(); System.out.println(titleMessage); Строка message= driver.findElement(С помощью.xpath(«//h4[содержит(текст(),’Ву-у-у! Вы успешно зарегистрировались! Посмотрите ou’)]»)).getText(); System.out.println(сообщение); driver.findElement(By.xpath(«//кнопка [содержит(текст(),’OK’)]»)).click(); Это то, что я пробовал.
4. Кнопка доступна для нажатия.
5. Вы прочитали сообщение об ошибке? В нем четко указано,
Other element would receive the click
за которым следует HTML блокирующего элемента. Из HTML этого элемента,class="loader"
похоже, что есть загрузчик / счетчик чего-то, что появляется перед тем, как вы пытаетесь щелкнуть. Вы должны добавить ожидание появления этого элемента, а затем еще одно ожидание исчезновения этого элемента. ЗАТЕМ попробуйте нажать.
Ответ №1:
Вы можете нажать enter для принятия оповещений.
Robot robot=new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);