如何使用 cypress 从 Mailslurp 中的确认电子邮件中提取链接?

2023-12-11

我试图提取一个链接以使用 Cypress 和 Mailslurp 继续进行用户注册。为此,我编写了以下代码:

let inboxId;
let emailAddress;

describe('sign up', () => {
    beforeEach(() => {
        
        cy.viewport(1920, 1080);
    })

    it('receive sign up link', () => {
        cy.visit('/signup');
        cy.createInbox().then(inbox => {
            // verify a new inbox was created
            assert.isDefined(inbox)
      
            // save the inboxId for later checking the emails
            inboxId = inbox.id
            emailAddress = inbox.emailAddress;

            cy.get('#email-input').type(emailAddress);
            cy.get('.bg-gray-100 > .p-button').click();
        })
    })

    it('extract the confirmation link and extract the code', () => {
        cy.waitForLatestEmail(inboxId).then(email => {
            const emailHTML = email.body;
            const regexLink = /<a href="([^"]+)">/;
            const match = emailHTML.match(regexLink);
            const link = match[0];
            cy.visit(link);
        });
    });

})

但常量“const link”返回空值

我期待收到继续注册链接的链接


您可以使用像 jsdom 这样的库并解析 html,以便您正确地返回所有链接,如下所示:

const dom = new JSDOM(email.body);
const link = dom.window.document.querySelector('a');

但是,您也可以避免自己使用正则表达式或 dom 库查找链接。 我在公司使用 Mailosaur 来实现此目的,它可以为您从电子邮件中提取链接,因此您不必担心这一点。

从他们的文档中here:

 it('Gets a Password Reset email', () => {
      cy.mailosaurGetMessage(serverId, {
        sentTo: testEmail
      }).then(email => {
        expect(email.subject).to.equal('Reset your password');
        passwordResetLink = email.text.links[0].href;
      })
    })

所以你的代码看起来像这样:

   

 it('extract the confirmation link and extract the code', () => {
            cy.mailosaurGetMessage(serverId, {
            sentTo: emailAddress
          }).then(email => {
                const link = email.text.links[0].href;
                cy.visit(link);
            });
        });

其次,您也不需要创建收件箱或电子邮件地址并调用他们的 API,您可以像连接字符串一样简单地创建地址。 我希望这对你有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 cypress 从 Mailslurp 中的确认电子邮件中提取链接? 的相关文章

随机推荐

  • 在离开未保存更改的网页之前警告用户

    我的申请中有一些带有表格的页面 如何保护表单 以便在有人离开或关闭浏览器选项卡时 系统应提示他们确认是否确实要保留未保存数据的表单 简短 错误的答案 你可以通过以下方式做到这一点处理beforeunload事件并返回一个非空字符串 wind
  • iOS:UITableView 滚动太快时会混合数据

    我已经对 UITableViewCell 进行了子类化以向其添加自定义外观 在 MYTableViewCell 的初始化级别 我添加了 4 个子视图 UIImageView 和三个 UILabel 所有 4 个子视图都分配有不同的标签 在
  • Google 表格的活跃用户 VS 有效用户

    我正在编写一个简单的谷歌应用程序脚本应用程序 它根据请求页面的用户执行一些数据操作 根据谷歌文档对象 Session 有获取活动用户 and 获取有效用户 我目前使用它来确定用户 看一下代码 var email Session getAct
  • 操作栏下的进度栏

    问题摘要 我怎样才能做一个ProgressBar集成在内部ActionBar 就像在 Chrome 应用程序上一样 Details 看一下 Chrome 的截图 我想创建一个像这样的操作栏 在操作栏的正下方 有一个进度条 它根据页面加载情况
  • 具有可变宽度元素的 jquery 滑块

    是否可以创建一个 jquery 滑块 其中元素具有可变宽度 即并非所有元素都具有相同的宽度 如果是这样 我该怎么做 汉尼特 要设置 jQuery 滑块的宽度 只需使用 CSS 将其包装在 div 和样式中即可 您还可以通过 CSS 引用子元
  • 该解决方案可以安全地通过 webSoket 通信在网络上访问用户的私有证书吗?

    我们正在开发一个使用 https 协议 两种方式 的网页 我们需要访问用户的私有证书 因为我们需要通过用户的证书来签署文档 所以我们开发了一个通过Websoket与Web进行通信的Java应用程序 该应用程序将通过网络协议调用进行调用 与从
  • 检查同一列中是否有相似的字符串

    我有一个这样的数据框 df col1 col2 A the value is zero B this is a cat C the value is one D nothing is here E the colour is blue F
  • API 24 及更高版本中区域设置更改时出现 Android RTL 问题

    我试图在运行时更改应用程序的区域设置 它在 API 级别 24 以下的 Andorid 中工作正常 但在 API 级别 24 或更高版本中 布局方向不会根据区域设置而改变 下面是在运行时更改区域设置的代码 我使用了 LocaleHelper
  • 正则表达式匹配具有特定开始/结束的字符串

    我正在尝试匹配所有出现的以开头的字符串 并以一个空格结尾 我正在处理的文件是 OpenVPN 手册 我想要提到的所有选项 例如 option 我正在使用 Sublime Text 根据其备忘单 他们支持 A and Z表示字符串的开始和结束
  • IBM Worklight - 如何将参数从应用程序传递到适配器?

    我想将参数从应用程序传递到适配器 我希望应用程序的用户输入这些选项 现在我在适配器中传递这样的参数 function getFeeds WL Logger debug inside method var input method get r
  • “FBRequest requestForMe”无法识别的选择器

    第一次发帖 昨天刚刚下载了 FB iOS SDK 10 10 2012 我已完成以下列出的入门步骤https developers facebook com docs getting started facebook sdk for ios
  • 在 Kafka 流作业中进行同步数据库查询或静态调用是一个好习惯吗?

    我使用Kafka Streams来处理实时数据 在Kafka Streams任务中 我需要访问MySQL来查询数据 并且需要调用另一个Restful服务 所有操作都是同步的 恐怕同步调用会降低流任务的处理能力 这是一个好的做法吗 或者有什么
  • 命令模式下的垂直 vim 光标

    我在 Mac 上 我将终端光标设置为竖线选项 然而 在 vim 命令模式下 光标是竖线 但它不会让我使用 hjkl 转到行尾 它总是在行尾之前停止 这尤其令人烦恼 因为您必须在插入模式下使用箭头键才能使光标到达行尾 任何修复将不胜感激 例如
  • Grep 中“单词”的含义

    在 grep 的手册页中它说 gt The symbols lt and gt respectively match the empty string at the gt beginning and end of a word 这里的词是什
  • 将收到的订单 woocommerce 发送给经销商并发送电子邮件通知

    我有一个电子邮件 经销商 列表 当我在 wp admin 中收到订单时 我需要打开此订单并将此订单发送给经销商 商业 用户 每个经销商都有一封电子邮件 并在已发送给该经销商的自定义字段中标记此订单 在我的 woocommerce 订单页面中
  • Clang 相当于 GCC 的 -mwindows

    我知道如何指示 GCC 使用the mwindows flag 使用以下命令生成 PEIMAGE SUBSYSTEM WINDOWS GUI而不是IMAGE SUBSYSTEM WINDOWS CUI Windows子系统 Clang 提供
  • 如何更改构建配置以便 cmd 指向 python 解释器的实际位置?

    当我尝试通过 Sublime Text 2 运行 python 或任何语言时 它只说 Error 2 The system cannot find the file specified cmd u python u u u C Users
  • datepicker 禁用基于时间的日期

    我的网站上有一个日期选择器 但现在我想禁用基于时间的日期 我想实现两件事 我想禁用今天 用户不应该能够选择今天的日期 每天下午 2 00 后我也想明天禁用 通过jquery可以吗 根据一天中的时间更改 minDate 怎么样 var hou
  • C++ 函数定义和变量声明不匹配?

    考虑这个非常简单的代码 include
  • 如何使用 cypress 从 Mailslurp 中的确认电子邮件中提取链接?

    我试图提取一个链接以使用 Cypress 和 Mailslurp 继续进行用户注册 为此 我编写了以下代码 let inboxId let emailAddress describe sign up gt beforeEach gt cy