首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebDriver -使用selenium检查忘记密码功能

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

Stack Overflow用户
提问于 2017-05-16 05:30:35
回答 2查看 4.9K关注 0票数 1

我有一个场景,可以使用selenium + Java检查忘记密码功能。以下步骤如下:

1]点击忘记密码链接。

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

(3)输入有效的电子邮件后,OTP发送到电子邮件Id:到目前为止,它工作得很好。

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

是否有可能使这个场景自动化。

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

谢谢.)

EN

回答 2

Stack Overflow用户

发布于 2017-05-16 05:46:36

你需要OTP继续,所以你不能跳过这个部分。这里是你可以尝试的

  1. 转到电子邮件服务提供商
  2. 登录
  3. 检查包含OTP的电子邮件
  4. 去找OTP
  5. 在TextField中使用OTP
票数 1
EN

Stack Overflow用户

发布于 2017-05-16 06:05:22

如果这是你的住宅开发,我建议你选择另一种方式。

  1. 与开发人员协调,并在测试环境中以该形式添加一个OTP字段。
  2. 您可以通过设置db连接从数据库获取OTP,因为您需要数据库凭据和连接器文件来建立连接。
  3. 您可以在javax.mail库的帮助下读取电子邮件,并通过regex匹配从电子邮件中提取OTP代码。

下面是该代码的示例代码

代码语言:javascript
复制
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();


    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43993192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档