2014-10-13 2 views
0

Я делаю действие UI и есть 2 возможности;Selenium Handle условное утверждение

1. I get an info message OR 
2. I get a success message 

Теперь мне нужно утверждать то же самое в Селене.

Опять же есть только один результат можно на пользовательском интерфейсе ... либо я получаю сообщение информации или я получаю сообщение об успехе ..

Поэтому в основном я должен утверждать на одно из следующих действий;

assertThat(getAlertMessage("info", "cancel info message").getText(), equalTo("cancel info message")); 

assertThat(getAlertMessage("success", "cancel success message").getText(), equalTo("cancel success message")); 

Должен ли я попытаться поймать ИЛИ использовать, если ... еще?

+0

Какой инструмент вы используете, чтобы делать утверждения? Junit, TestNG или какой-нибудь другой инструмент? – Selena

+0

i m using JUnit – testndtv

+0

Вы хотите использовать hamcrest matchers в своем утверждении? – Selena

ответ

1

Вы можете использовать методы утверждения, которые принимают булевы в качестве параметров и просто условный или проверить:

Для TestNG:

String alertMessage = getAlertMessage("info", "cancel info message").getText(); 
String infoMessage = "cancel info message"; 
String successMessage = "cancel success message"; 

assertTrue(alertMessage.equals(infoMessage) || alertMessage.equals(successMessage), "Alert message does not equal either info or success message"); 

Для JUnit:

String alertMessage = getAlertMessage("info", "cancel info message").getText(); 
String infoMessage = "cancel info message"; 
String successMessage = "cancel success message"; 

assertTrue("Alert message does not equal either info or success message", alertMessage.equals(infoMessage) || alertMessage.equals(successMessage)); 

Если вы вы можете сделать это:

assertThat(alertMessage, anyOf(equalTo(infoMessage), equalTo(successMessage)));