如何使用 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 中的确认电子邮件中提取链接? 的相关文章

  • JavaScript 添加布尔值

    console log true true 2 console log typeof true true number console log isNaN true true false 为什么两个布尔类型相加会产生一个数字 我有点理解 如
  • 浏览器视口大小(以设备像素为单位)

    Goal 我希望 Flash 能够获得有关浏览器视口宽度和高度 以设备像素为单位 的准确信息初始化 调整大小或浏览器缩放事件时 规格 我需要将 flash 嵌入到在 chrome safari firefox 等中运行的 html 页面中
  • 位置特征检测:固定

    我正在尝试找到一个脚本来检测设备是否放置position fixed元素相对于视口而不是整个文档 目前 标准桌面浏览器和 Mobile Safari 适用于 iOS 5 都是这样做的 而 Android 设备则相对于整个文档放置固定元素 我
  • 尽管极其懒惰,但如何在 Python 中模拟 IMAP 服务器?

    我很好奇是否有一种简单的方法来模拟 IMAP 服务器 例如imaplib模块 在Python中 without做很多工作 是否有预先存在的解决方案 理想情况下 我可以连接到现有的 IMAP 服务器 进行转储 并让模拟服务器在真实的邮箱 电子
  • 如何在没有 jQuery 的情况下删除 Javascript 中的元素

    我试图通过以下方式从 DOM 中删除 Div a 标签嵌套在其中 我想我正在寻找的是 jQuery 的纯 Javascript 版本 div remove 这是html设置 div a href Click me to remove the
  • 使用覆盖率信息测试 Go 中的 os.Exit 场景 (coveralls.io/Goveralls)

    这个问题 如何在 Go 中测试 os exit 场景 https stackoverflow com questions 26225513 how to test os exit scenarios in go 以及其中得票最高的答案 列出
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • 本地推送通知到在应用程序内运行 JS 代码的 Win8 Live Tile

    我正在尝试将更新发送到我的应用程序的磁贴 当应用程序运行时 这可以正常工作 例如 当用户单击按钮时 我可以轻松地将磁贴更新通知发送到磁贴 我无法解决的是当应用程序无法运行时如何更新磁贴 我找到的唯一选择是使用以下命令从远程 Web 服务器拉
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

    我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • 如何在另一个自定义 Hook 中使用返回值的自定义 Hook?

    我正在使用 React native 其中有一个名为的自定义 HookuseUser使用以下方法从 AWS Amplify 获取用户信息Auth getUserInfro方法 然后获取返回对象的一部分并用它设置一个状态变量 我还有另一个名为
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • 如何从 json 文件创建模型? (ExtJS)

    这是我想使用 json 文件创建的模型 Ext define Users extend Ext data Model fields name user id type int name user name type string 为了根据服
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供

随机推荐

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

    我的申请中有一些带有表格的页面 如何保护表单 以便在有人离开或关闭浏览器选项卡时 系统应提示他们确认是否确实要保留未保存数据的表单 简短 错误的答案 你可以通过以下方式做到这一点处理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