#java #selenium #selenium-webdriver
#Ява #селен #селен-веб-драйвер
Вопрос:
Я хочу проверить, не появляется ли сообщение об ошибке при переходе между страницами.Когда появится сообщение об ошибке, тест будет завершен и будет составлен отчет.Для этого я использую следующий элемент, связанный с сообщением об ошибке на сайте.
try { WebElement element=driver.findElement(By.className("p-toast-message-text")); element.isDisplayed(); boolean s= element.isDisplayed(); System.out.println(s); } catch (NoSuchElementException e) { throw new RuntimeException("-----"); }
Однако, когда я настраиваю эту структуру, если на странице есть ошибка, тест проходит успешно, если ошибки нет, тест завершается неудачно. Поэтому невозможно переключиться на другую страницу.Как я могу контролировать этот момент?
Ответ №1:
Ну, я бы попросил HTML, чтобы узнать, является ли путь, который вы указываете, уникальным для вашего случая, я могу предложить использовать Assert, если вы хотите, чтобы код останавливался после отображения ошибки, или мягкое утверждение, если вы хотите, чтобы ваш код продолжался, даже если в конце есть ошибка с assertall (). То, как я это контролирую:
Boolean NoCanceledAppointement = driver.findElements(By.xpath("//div[@class="empty-result"]/h2[normalize-space(text())="Vous n’avez pas de Rendez-vous annulés !"]")).size() gt; 0; if(NoCanceledAppointement == true) { Reporter.log(FormatMessageSucces " No Canceled Appointement Existlt;/fontgt;"); } else { Sa.assertEquals(false, true, "The Page didn't show the message of 'You have no canceled appointments!'"); ScreenShot(driver); Reporter.log(FormatMessageError " The Page didn't show the message of 'You have no canceled appointments!'lt;/fontgt;"); }
Если мой код не найдет элемент, он получит доступ к программному утверждению, что снимок экрана предназначен только для того, чтобы сфотографировать страницу, на которой была показана ошибка.