对于我的web应用程序,我需要打开gmail帐户并从邮件中随机生成一个字符串密码并将其复制到我的门户上。 问题是我使用Gmail帐户在我的webapp中登录。因此,当我在另一个窗口中打开Gmail时,它的会话已经启动,直接收件箱页面打开,我无法将焦点转移到此页面,因为其标题是动态的,如“收件箱(38) - [email protected] - MiniOrange邮件“取决于待处理的消息。在不使用标题的情况下在硒中选择窗口
我需要一种方法来选择我的窗口而不使用它的标题。
对于我的web应用程序,我需要打开gmail帐户并从邮件中随机生成一个字符串密码并将其复制到我的门户上。 问题是我使用Gmail帐户在我的webapp中登录。因此,当我在另一个窗口中打开Gmail时,它的会话已经启动,直接收件箱页面打开,我无法将焦点转移到此页面,因为其标题是动态的,如“收件箱(38) - [email protected] - MiniOrange邮件“取决于待处理的消息。在不使用标题的情况下在硒中选择窗口
我需要一种方法来选择我的窗口而不使用它的标题。
该解决方案将与任意数量的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);
这已被讨论过很多次的工作;除非您为电子邮件公司工作,否则不要尝试自动化Gmail或任何其他Web浏览器!
如果您需要检查电子邮件已发送,验证内容或提取数据以继续流程,则它本质上不稳定并且更好地使用电子邮件API。
https://groups.google.com/forum/m/#!msg/selenium-users/8jR6Fw5ndxU/7peVDuzkNN4J
我对此有点新鲜。你能否给我一些指导,说明如何从电子邮件中提取信息? – rkj
http://sellotapetest.blogspot.fr/2012/12/page-objectswhy-not-email-objects.html –