Проверка почты с помощью Selenium WebDriver и переход по ссылке из письма


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

Есть скрипт, который регистрируется на сайт.
Сайт отправляет письмо с ссылкой на активацию пользователя (верефикация почты).
Есть ли готовые рецепты для авторизации на Яндекс.Почте, выуживания нужного письма и по переходу по ссылке из этого письма?


(barancev) #2

Есть готовые средства -- POP3 или IMAP.


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

@barancev, вы имеет в виду читать почту средствами языка, на котором пишется тест?


(barancev) #4

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


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

@barancev, да, такие библиотеки конечно есть, но их использование немного будет искажать реальное поведение пользователя.
Я просто думал, что кто-нить уже сталкивался с подобным и написал тесты для работы с популярными почтовыми веб-интерфейсами.


(rpwheeler) #6

@TIT

1) Полагаете, браузеру так принципиально, откуда берется ссылка, которую пользователя просят открыть для авторизации? Вот я дома вообще веб-интерфейсами почтовых сервисов практически не пользуюсь, все ящики проверяю через почтовый клиент. А технически получение браузером ссылки из почтового клиента не будет отличаться от получения ссылки из любого другого стороннего источника.

2) Известный в кругах Алексей Лупан не так давно рассказывал о том, как меню или ссылки на одном сайте *внезапно* стали фонового цвета (из-за ошибки в CSS, что ли). Люди это бы сразу заметили, а в Selenium была прописана только проверка наличия ссылок в коде, а не их цвета - и тесты выдали ОК.

3) Если хотите хардкора :)  - могу посоветовать Sikuli (http://sikuli.org/) . Это инструмент написания макросов с "функциональностью пользователя": он не смотрит в код страницы вообще, он ищет по изображениям на экране. Я делал на нем небольшую автоматизацию веб-сайтов - логин при помощи Facebook авторизации, прокрутка, кликанье ссылок, кликанье кнопок... Разработчики говорят, что он прикручивается, как и Webdriver, к Java (6) или Python (2.6).

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

Но все же, имхо, ввиду пп. 1 и 2 овчинка выделки стоит только в том случае, если сложно разбираться с почтовыми библиотеками.


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

@rpwheeler, вы окончательно убедили меня в том, что нужно выуживать ссылку библиотекой языка, а не «ставить раком» браузер.
Большое спасибо за развёрнутый ответ.


(Олег1986) #8

Не знаю можно ли ссылки оставлять, о проблеме писал тут, помогите плиз. 


(5am) #9

сам сталкивался с пободной задачей в рамках тестов на восстановление пароля, подтверждения регистрании, etc

было так:

регаемся используя одноразовую почту (не сочтате за рекламу, использовал temp-mail.ru)

абстрактный алгоритм в пределах одного браузера (без чистки куков, etc)

открываем сервис временной почты, получаем оттуда адрес почты

региструемся на полученную почту

открываем страницу времянки  (рефрешим) пока не наступит (Ваше одижание * N  - у меня 150 секунд)

поступило сообщение, открываем нажатием кнопки - дергаем линк

переходим по линку

профит.


(mikhail.sidelnikov) #10

Я с яндексом проделывал такие операции селениумом. У них достаточно все просто(в смысле локаторов и действий). Но это было для интереса. Наверное реально проще либами поп3 забирать.


(ffess) #11

А я пользовался либами Руби для работы с ящиками, письмами и  ссылками в них - остались одни приятные впечатления


(Олег1986) #12

Всем спасибо, решение нашел здесь Спасибо Vol. В итоге методом

getMessageFullInfo(messages[i]) получил весь текст письма.