Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WebDriver-使用selenium检查忘记密码功能_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Java WebDriver-使用selenium检查忘记密码功能

Java WebDriver-使用selenium检查忘记密码功能,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我正在使用SeleniumWebDriver+Java检查忘记密码功能。 以下步骤如下: 1] 点击忘记密码链接 2] 输入电子邮件id以恢复帐户: 3] 输入有效的电子邮件id后,OTP发送到电子邮件id: 到现在为止,它工作得很好 但现在我需要在文本字段中输入OTP: 是否有可能将此场景自动化 如果可能,请提出解决方案 提前感谢:)您需要OTP才能继续,因此不能跳过此部分。这是你可以尝试的 转到电子邮件服务提供商 登录 检查包含OTP的电子邮件 拿到检察官办公室 使用文本字段中的OTP

我正在使用SeleniumWebDriver+Java检查忘记密码功能。 以下步骤如下:

1] 点击忘记密码链接

2] 输入电子邮件id以恢复帐户:

3] 输入有效的电子邮件id后,OTP发送到电子邮件id: 到现在为止,它工作得很好

但现在我需要在文本字段中输入OTP:

是否有可能将此场景自动化

如果可能,请提出解决方案


提前感谢:)

您需要OTP才能继续,因此不能跳过此部分。这是你可以尝试的

  • 转到电子邮件服务提供商
  • 登录
  • 检查包含OTP的电子邮件
  • 拿到检察官办公室
  • 使用文本字段中的OTP

  • 我建议的另一种方式 如果这是您的内部开发,那么

  • 与开发人员协调,并在测试环境中以该形式添加一个OTP字段

  • 您可以通过设置数据库连接从数据库获取OTP,因为您需要数据库凭据和连接器文件来建立连接

  • 您可以在
    javax.mail
    库的帮助下阅读电子邮件,并通过一些正则表达式匹配从电子邮件中提取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();
    
    
        }
    }
    
    package com.tkt.utils;
    导入java.util.Properties;
    导入java.util.regex.Matcher;
    导入java.util.regex.Pattern;
    导入javax.mail.BodyPart;
    导入javax.mail.Flags;
    导入javax.mail.Folder;
    导入javax.mail.Message;
    导入javax.mail.Multipart;
    导入javax.mail.Session;
    导入javax.mail.Store;
    公共类ReadEmail
    {
    静态字符串hostName=“imap.1和1.com”;
    静态字符串username=“”;
    静态字符串密码=”;
    静态int-messageCount;
    公共静态字符串url=null;
    公共静态字符串userid=null;
    公共静态字符串pass=null;
    //公共静态void showmail()
    公共静态void main(字符串ar[]
    {
    Properties sysProps=System.getProperties();
    setProperty(“mail.store.protocol”、“imap”);
    尝试
    {
    Session Session=Session.getInstance(sysProps,null);
    Store Store=session.getStore();
    store.connect(主机名、用户名、密码);
    文件夹emailInbox=store.getFolder(“收件箱”);
    电子邮件收件箱。打开(文件夹。读写);
    messageCount=emailInbox.getMessageCount();
    System.out.println(“消息总数:“+messageCount”);
    int unreadMsgCount=emailInbox.getNewMessageCount();
    System.out.println(“未读邮件计数:+unreadMsgCount”);
    Message emailMessage=emailInbox.getMessage(messageCount);
    System.out.println(“电子邮件主题:+emailMessage.getSubject());
    Multipart Multipart=(Multipart)emailMessage.getContent();
    BodyPart=multipart.getBodyPart(0);
    字符串响应消息=part.getContent().toString();
    System.out.println(“=========================”+响应消息);
    //获取电子邮件ID
    Pattern p=Pattern.compile(“EmailId:(.+)”);
    匹配器m=p.Matcher(响应消息);
    if(m.find()){
    userid=m.group(1);
    }
    System.out.println(userid);
    /*获取URL*/
    patternp2=Pattern.compile(“http(+)”);
    匹配器m2=p2.匹配器(响应消息);
    if(m2.find()){
    url=m2.group();
    }
    System.out.println(“URL:=”+URL);
    /*从电子邮件获取密码*/
    模式p1=Pattern.compile(“密码:(.*);
    匹配器m1=p1.匹配器(响应消息);
    if(m1.find()){
    通过=m1。组(1);
    }
    系统输出打印项次(通过);
    /*System.out.println(“电子邮件内容:+emailMessage.getContent().toString());
    
    Pattern p=Pattern.compile(“密码:([^不,您不能。您需要OTP才能继续。您最好的尝试是自动登录电子邮件服务提供商,并从那里获取OTP电子邮件。@Shaswat感谢您的帮助。将尝试此解决方案。谢谢Narendra。这是一个很好的解决方案。我期待与它合作。