Подскажите пожалуйста, я недавно работаю с Selenium, как можно выставить условие, если при переходе на определенную страницу
driver.get(URL1)
я попадаю автоматический редиректом на другую страницу, к примеру для ввода логина и пароля (URL2), тогда я логинюсь, если редирект на URL2 не происходит, я продолжаю работать на URL1.
driver.getCurrentUrl()
или
driver.getTitle()
А вообще лучше сделать ход теста линейным. В Вашем случае достаточно чистить куки перед началом теста. Сделайте это в setup шаге, который будет вызываться перед началом каждого следующего теста.
В Selenium есть метод current_url
.
В разных языках он может называться по разному.
driver.get example.com
case driver.current_url
when 'http://example.com/auth'
# auth code
when 'http://example.com/other'
# other code
end
Но, не забывайте, что поведение страницы должно быть предсказуемым, а не случайным (могу на авторизацию попасть, могу не попасть).
Вы всегда должны знать, какая страница и в каком состоянии должна быть перед вами.
если в тесте есть условия, то он уже не тест, а какая то State Machine … пишите просто 2 отдельних теста на 2 случая, - один с редиректом, другой без, а то получаеться что у Вас рандомний флов тестируеться
я так понял что Вы хотели сделать что то такое -
//----code
driver.get(url1)
String title - driver.getTitle();
if(title.equals(“login”){
// code for login
}{else
///
}
Можно попробовать так.
// code
@Before
void before(){
driver.get(url1)
}
void func(){
try{
autorization();
}catch{NullPointerException e){
//код действия на странице или вызов функции которая выполняет действие
}
}
void autorization(){
//авторизация
element=findElement(); //если элемент не найден - NullPointerException
}
Таким образом тестировал Steam. Там при выборе игры иногда выскакивает окно подтверждения возраста. Если окно появилось, я выбираю подходящий год. Если окно не появилось, я отлавливаю ошибку, что NullPointer и перехожу к дальнейшим действиям
P.S. Грубо говоря, сначала вы заходите на сайт. Потом пытаетесь пройти авторизацию принудительно.
- Если появилось окно авторизации. Авторизируемся и продолжаем работу
- Окно не появилось. Отловили ошибку и пошли работать дальше