Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как сделать проверку текущего УРЛа страницы с выставлением условий


(Andrey Bzhestovskyy) #1

Подскажите пожалуйста, я недавно работаю с Selenium, как можно выставить условие, если при переходе на определенную страницу
driver.get(URL1)
я попадаю автоматический редиректом на другую страницу, к примеру для ввода логина и пароля (URL2), тогда я логинюсь, если редирект на URL2 не происходит, я продолжаю работать на URL1.


(Дмитрий Мирошник) #2
driver.getCurrentUrl() или driver.getTitle() А вообще лучше сделать ход теста линейным. В Вашем случае достаточно чистить куки перед началом теста. Сделайте это в setup шаге, который будет вызываться перед началом каждого следующего теста.

(Сергей Блохин) #3

В 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

Но, не забывайте, что поведение страницы должно быть предсказуемым, а не случайным (могу на авторизацию попасть, могу не попасть).
Вы всегда должны знать, какая страница и в каком состоянии должна быть перед вами.


(Taras) #4

если в тесте есть условия, то он уже не тест, а какая то State Machine … пишите просто 2 отдельних теста на 2 случая, - один с редиректом, другой без, а то получаеться что у Вас рандомний флов тестируеться


(t62) #5

я так понял что Вы хотели сделать что то такое -

//----code
driver.get(url1)

String title - driver.getTitle();
if(title.equals(“login”){
// code for login

}{else
///

}


(Egor Ryaboshapko) #6

Можно попробовать так.
// code
@Before
void before(){
driver.get(url1)
}
void func(){
try{
autorization();
}catch{NullPointerException e){
//код действия на странице или вызов функции которая выполняет действие
}
}
void autorization(){
//авторизация
element=findElement(); //если элемент не найден - NullPointerException
}

Таким образом тестировал Steam. Там при выборе игры иногда выскакивает окно подтверждения возраста. Если окно появилось, я выбираю подходящий год. Если окно не появилось, я отлавливаю ошибку, что NullPointer и перехожу к дальнейшим действиям

P.S. Грубо говоря, сначала вы заходите на сайт. Потом пытаетесь пройти авторизацию принудительно.

  1. Если появилось окно авторизации. Авторизируемся и продолжаем работу
  2. Окно не появилось. Отловили ошибку и пошли работать дальше