Есть скрипт, который регистрируется на сайт.
Сайт отправляет письмо с ссылкой на активацию пользователя (верефикация почты).
Есть ли готовые рецепты для авторизации на Яндекс.Почте, выуживания нужного письма и по переходу по ссылке из этого письма?
Есть готовые средства -- POP3 или IMAP.
Ну конечно, наверняка там есть библиотеки для чтения почты через POP3 или IMAP, это будет быстро и без продолжительной борьбы с пользовательским интерфейсом почтового клиента.
@barancev, да, такие библиотеки конечно есть, но их использование немного будет искажать реальное поведение пользователя.
Я просто думал, что кто-нить уже сталкивался с подобным и написал тесты для работы с популярными почтовыми веб-интерфейсами.
@TIT
1) Полагаете, браузеру так принципиально, откуда берется ссылка, которую пользователя просят открыть для авторизации? Вот я дома вообще веб-интерфейсами почтовых сервисов практически не пользуюсь, все ящики проверяю через почтовый клиент. А технически получение браузером ссылки из почтового клиента не будет отличаться от получения ссылки из любого другого стороннего источника.
2) Известный в кругах Алексей Лупан не так давно рассказывал о том, как меню или ссылки на одном сайте *внезапно* стали фонового цвета (из-за ошибки в CSS, что ли). Люди это бы сразу заметили, а в Selenium была прописана только проверка наличия ссылок в коде, а не их цвета - и тесты выдали ОК.
3) Если хотите хардкора :) - могу посоветовать Sikuli (http://sikuli.org/) . Это инструмент написания макросов с "функциональностью пользователя": он не смотрит в код страницы вообще, он ищет по изображениям на экране. Я делал на нем небольшую автоматизацию веб-сайтов - логин при помощи Facebook авторизации, прокрутка, кликанье ссылок, кликанье кнопок... Разработчики говорят, что он прикручивается, как и Webdriver, к Java (6) или Python (2.6).
Несколько освоившись в нем, вполне можно сделать (и довольно быстро) авторизацию на любом почтовом сервисе, визуальное выуживание нужного письма, открытие его кликом, определение положения ссылки авторизации и клика по ней.
Но все же, имхо, ввиду пп. 1 и 2 овчинка выделки стоит только в том случае, если сложно разбираться с почтовыми библиотеками.
@rpwheeler, вы окончательно убедили меня в том, что нужно выуживать ссылку библиотекой языка, а не «ставить раком» браузер.
Большое спасибо за развёрнутый ответ.
сам сталкивался с пободной задачей в рамках тестов на восстановление пароля, подтверждения регистрании, etc
было так:
регаемся используя одноразовую почту (не сочтате за рекламу, использовал temp-mail.ru)
абстрактный алгоритм в пределах одного браузера (без чистки куков, etc)
открываем сервис временной почты, получаем оттуда адрес почты
региструемся на полученную почту
открываем страницу времянки (рефрешим) пока не наступит (Ваше одижание * N - у меня 150 секунд)
поступило сообщение, открываем нажатием кнопки - дергаем линк
переходим по линку
профит.
Я с яндексом проделывал такие операции селениумом. У них достаточно все просто(в смысле локаторов и действий). Но это было для интереса. Наверное реально проще либами поп3 забирать.
А я пользовался либами Руби для работы с ящиками, письмами и ссылками в них - остались одни приятные впечатления
Всем спасибо, решение нашел здесь Спасибо Vol. В итоге методом
getMessageFullInfo(messages[i]) получил весь текст письма.