【发布时间】:2019-07-28 16:56:59
【问题描述】:
在我的测试中,我想访问通过电子邮件发送的 URL。我可以成功地将 URL 保存在变量中,但无法让 cypress 转到该 URL。我不断收到以下错误。我不完全理解 cypress 是“promise-like”的,所以我不知道如何解决这个问题
未捕获(承诺) CypressError:赛普拉斯检测到您返回 来自命令的承诺,同时还调用一个或多个 cy 命令 在那个承诺中。
返回承诺的命令是:
cy.get()
你在 promise 中调用的 cy 命令是:
cy.request()
因为 Cypress 命令已经类似于 Promise,所以您不需要 包装它们或返回您自己的承诺。
赛普拉斯将使用最终的赛普拉斯解决您的命令 命令产生。
Cypress.Commands.add("clickForgotPwdLink", (emailaddress) => {
const MailosaurClient = require('mailosaur');
const client = new MailosaurClient('1234');
let latestEmail;
var emailLower = emailaddress.toLowerCase();
client.messages.search('abc', {
sentTo: emailLower
}).then((results) => {
latestEmail = results.items[0];
let email = latestEmail.id;
client.messages.get(email)
.then((newlink) => {
var forgotpwd = newlink.html.links[0].href;
console.log(forgotpwd)
cy.request(''+forgotpwd+'');
})
})
});
【问题讨论】:
标签: javascript cypress