1

对于我的web应用程序,我需要打开gmail帐户并从邮件中随机生成一个字符串密码并将其复制到我的门户上。 问题是我使用Gmail帐户在我的webapp中登录。因此,当我在另一个窗口中打开Gmail时,它的会话已经启动,直接收件箱页面打开,我无法将焦点转移到此页面,因为其标题是动态的,如“收件箱(38) - [email protected] - MiniOrange邮件“取决于待处理的消息。在不使用标题的情况下在硒中选择窗口

我需要一种方法来选择我的窗口而不使用它的标题。

回答

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或任何其他Web浏览器!

如果您需要检查电子邮件已发送,验证内容或提取数据以继续流程,则它本质上不稳定并且更好地使用电子邮件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 –

相关问题