Как я могу поймать сообщение об ошибке Selenium

#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;");  }  

Если мой код не найдет элемент, он получит доступ к программному утверждению, что снимок экрана предназначен только для того, чтобы сфотографировать страницу, на которой была показана ошибка.