您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在量角器测试用例中从电子邮件中获取值

在量角器测试用例中从电子邮件中获取值

这是我最近解决的问题。希望该解决方案也适用于您的用例。

先决条件:

分步说明:

        npm install mail-listener2 --save-dev
        onPrepare: function () {
        var MailListener = require("mail-listener2");

        // here goes your email connection configuration
        var mailListener = new MailListener({
            username: "imap-username",
            password: "imap-password",
            host: "imap-host",
            port: 993, // imap port 
            tls: true,
            tlsOptions: { rejectUnauthorized: false },
            mail@R_414_2419@: "IN@R_414_2419@", // mail@R_414_2419@ to monitor 
            searchFilter: ["UNSEEN", "FLAGGED"], // the search filter being used after an IDLE notification has been retrieved 
            markSeen: true, // all fetched email willbe marked as seen and not fetched next time 
            fetchUnreadOnStart: true, // use it only if you want to get all unread email on lib start. Default is `false`, 
            mailParserOptions: {streamAttachments: true}, // options to be passed to mailParser lib. 
            attachments: true, // download attachments as they are encountered to the project directory 
            attachmentOptions: { directory: "attachments/" } // specify a download directory for attachments 
        });

        mailListener.start();

        mailListener.on("server:connected", function(){
            console.log("Mail listener initialized");
        });

        global.mailListener = mailListener;
    }),

    onCleanUp: function () {
        mailListener.stop();
    }, 
        function getLastemail() {
        var deferred = protractor.promise.defer();
        console.log("Waiting for an email...");

        mailListener.on("mail", function(mail){
            deferred.fulfill(mail);
        });
        return deferred.promise;
    };
        describe("Sample test case", function () {

        beforeEach(function () {
            browser.get("/#login");
            browser.waitForAngular();
        });

        it("should login with a registration code sent to an email", function () {
            element(by.id("username")).sendKeys("MyUserName");
            element(by.id("password")).sendKeys("MyPassword");
            element(by.id("loginButton")).click();

            browser.controlFlow().await(getLastemail()).then(function (email) {
                expect(email.subject).toEqual("New Registration Code");
                expect(email.headers.to).toEqual("myemail@email.com");

                // extract registration code from the email message
                var pattern = /Registration code is: (\w+)/g;
                var regCode = pattern.exec(email.text)[1];

                console.log(regCode);

             });
        });
    });
其他 2022/1/1 18:19:41 有562人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶