我有一个场景,可以使用selenium + Java检查忘记密码功能。以下步骤如下:
1]点击忘记密码链接。
2]输入电子邮件id以恢复帐户:

(3)输入有效的电子邮件后,OTP发送到电子邮件Id:到目前为止,它工作得很好。
但是现在我需要在文本字段中输入OTP:

是否有可能使这个场景自动化。
如果可能的话,请提出解决方案。
谢谢.)
发布于 2017-05-16 05:46:36
你需要OTP继续,所以你不能跳过这个部分。这里是你可以尝试的
发布于 2017-05-16 06:05:22
如果这是你的住宅开发,我建议你选择另一种方式。
javax.mail库的帮助下读取电子邮件,并通过regex匹配从电子邮件中提取OTP代码。下面是该代码的示例代码
package com.tkt.utils;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.mail.BodyPart;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Store;
public class ReadEmail
{
static String hostName ="imap.1and1.com";
static String username = "";
static String password = "";
static int messageCount;
public static String url=null;
public static String userid = null;
public static String pass=null;
//public static void showEmail()
public static void main(String ar[])
{
Properties sysProps = System.getProperties();
sysProps.setProperty("mail.store.protocol", "imap");
try
{
Session session = Session.getInstance(sysProps, null);
Store store = session.getStore();
store.connect(hostName, username, password);
Folder emailInbox = store.getFolder("INBOX");
emailInbox.open(Folder.READ_WRITE);
messageCount = emailInbox.getMessageCount();
System.out.println("Total Message Count: " + messageCount);
int unreadMsgCount = emailInbox.getNewMessageCount();
System.out.println("Unread Emails count:"+unreadMsgCount);
Message emailMessage = emailInbox.getMessage(messageCount);
System.out.println("Email Subject: " + emailMessage.getSubject());
Multipart multipart = (Multipart) emailMessage.getContent();
BodyPart part = multipart.getBodyPart(0);
String responseMessage = part.getContent().toString();
System.out.println("================"+responseMessage);
// Get Email ID
Pattern p = Pattern.compile("EmailId: (.+)");
Matcher m = p.matcher(responseMessage);
if (m.find()) {
userid = m.group(1);
}
System.out.println(userid);
/*Get URL*/
Pattern p2 = Pattern.compile("http(.+)");
Matcher m2 = p2.matcher(responseMessage);
if (m2.find()) {
url = m2.group();
}
System.out.println("URL :="+ url);
/*Get password from email*/
Pattern p1 = Pattern.compile("Password: (.*)");
Matcher m1 = p1.matcher(responseMessage);
if (m1.find()) {
pass = m1.group(1);
}
System.out.println(pass);
/*System.out.println("Email Content: " + emailMessage.getContent().toString());
Pattern p = Pattern.compile("<td>Password:<.*?td>([^<]+)<td>(.+)<.*?td>");
Matcher m = p.matcher(responseMessage);
if (m.find()) {
password1 = m.group(1); // this variable should contain the link URL
}*/
emailMessage.setFlag(Flags.Flag.SEEN, true);
emailInbox.close(true);
store.close();
}
catch (Exception mex)
{
mex.printStackTrace();
}
//return new ReadEmail();
}
}https://stackoverflow.com/questions/43993192
复制相似问题