Алена, Вы меня простите, но писать “это gmail, детка” незнакомому человеку как минимум не вежливо.
Во-вторых, я выше спросил - какой почтовый сервис тестируете, и вопросы у многих (коих тут всего 2 человека) сразу бы отпали.
Удачи в тестировании.
org.openqa.selenium.ElementNotVisibleException: element not visible - селениум умеет работать только с теми элементами, которые находятся в зоне видимости страницы.
Вам нужно скриптом прокручивать страницу до места где находится элемент, и поле этого щелкать по нему http://internetka.in.ua/selenium-webdriver-scrolling/
Алена, сделайте это через протокол POP3 и распарсите нужное письмо, затем регулярным выражением найдите нужный кусок. На пример прикрепляю как это сделано у меня на руби.
def reset_link_yahho(email, password)
Net::POP3.enable_ssl(OpenSSL::SSL::VERIFY_NONE)
@pop = Net::POP3.start('pop.mail.yahoo.com', 995, email, password)
if @pop.mails.empty?
puts 'No mail.'
else
result = String.new
@pop.mails[0].pop {|chunk| result << chunk}
p @link_to_reset = find_reset_link(result)
end
end
А вот так я нахожу кусок который содержит ссылку на смену пароля.
def find_reset_link(body)
href = body[0..body.index('Reset Password')]
link = href[href.rindex('href') + 4..href.length]
link = link[link.index('"') + 1..link.length]
link = link[0..link.index('"') - 1]
link.sub!(Host, '')
link
end
и очищаем ящик
def clear_email_yahho(email, password)
Net::POP3.enable_ssl(OpenSSL::SSL::VERIFY_NONE)
Net::POP3.start('pop.mail.yahoo.com', 995, email, password) do |pop|
if pop.mails.empty?
puts 'No mail.'
else
count = 1
pop.each_mail do |m|
count += 1
m.delete
end
end
end
end
И не забудьте включить у вашего емэйл аккаунта опцию, в настройках безопасности, чтоб оно могло работать с внешними приложениями.
Чуть не забыл, когда будете вызывать емэйл - сделайте это в цикле, потому что письмо может сразу не прийти.
@get = GetEmail.new
@link_to_reset = NIL
while @link_to_reset.nil?
@link_to_reset = @get.reset_link_yahho(@username, @password)
end