t.me/atinfo_chat Telegram группа по автоматизации тестирования

WebDriver and PHPUnit - обход login если залогинен


(Semandra) #1

Всем привет. Такой вопрос, можно ли в WebDriver и  PHPUnit (пишу в обеих, по этому нужно и там и там) сделать проверку на то залогинен ли юзер в системе или нет, если нет то залогинится, если уже в системе то пропуститть процесс залогинивания и выполнять тест дальше. Может кто то сталкивался с таким вопросом, подскажите пожалуйста


(Vol) #2

Посмотрите Cookies, возможно там что-то найдете (username, logged, etc).


(Sergey Korol) #3

С PHPUnit не работал. Расскажу, как бы я сделал на Java + TestNG.

Если совсем просто, то можно в BeforeMethod засунуть принудительную попытку логина, обрамленную в try / catch. Если юзер залогинен, то по дефолту у него не должно быть ссылки login, и мы уже на первом шаге получим 'No such element' exception, а т.к. он обрабатываемый, то мы безболезненно пропустим этот шаг, и начнем выполнять тест.

Если делать посложнее, то можно добавить дополнительную проверку на HomePage наличия каких-либо уникальных для юзера элементов интерфейса - тот же лейбл с именем. Если isPresent(By smth) вернул true, авторизацию не проводим. Как это связать с тестом? В Java можно, например, воспользоваться аннотациями. Подключить кастомную аннотацию к тесту, а далее в BeforeMethod проверить ее наличе. Если присутствует, то осуществляем нужную нам проверку статуса юзера.


(Semandra) #4

спасибо за советы, буду пробовать