1

Для моего webapp мне нужно открыть учетную запись gmail и создать случайно генерируемый строковый пароль из почты и скопировать его на моем портале. Проблема заключается в том, что я вхожу в систему через webapp с помощью учетной записи gmail. Поэтому, когда я открываю gmail в другом окне, его сеанс уже открыт и открывается непосредственно страница «Входящие», и я не могу переключить фокус на эту страницу, поскольку ее название динамическое, как в «Входящие» (38) - [email protected] - MiniOrange Mail "в зависимости от ожидающих сообщений.Выбор окна в селене без использования заголовка

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

ответ

2

Это решение будет работать с любым количеством popus

String parentWindow = driver.getWindowHandle(); 
Set<String> windowHandles = driver.getWindowHandles(); 
Iterator<String> iterator = windowHandles.iterator(); 
while (iterator.hasNext()) { 
    String handle = iterator.next(); 
    if (!handle.contains(parentWindow)) { 
     // Switch to popup 
     driver.switchTo().window(handle); 
     // Do something   
    } 
} 
// Switch back to parentWindow 
driver.switchTo().window(parentWindow); 
4

Это обсуждалось много раз; не пытайтесь автоматизировать gmail или любой другой веб-браузер, если вы не работаете в компании электронной почты!

По своей сути неустойчиво и гораздо лучше использовать API-адрес электронной почты, если вам нужно проверить, отправлено ли электронное письмо, проверить содержимое или извлечь данные, чтобы продолжить поток.

https://groups.google.com/forum/m/#!msg/selenium-users/8jR6Fw5ndxU/7peVDuzkNN4J

+0

Я к этому отношусь. Не могли бы вы дать мне несколько инструкций по правильному и надежному способу извлечения информации из электронной почты? – rkj

+0

http://sellotapetest.blogspot.fr/2012/12/page-objectswhy-not-email-objects.html –

Смежные вопросы