我正在尝试让赛普拉斯测试中的Mailcatcher捕获电子邮件。 Mailcatcher在localhost:1080
上运行,而我的应用程序在3000端口上运行。
到目前为止,我无法简单地使用cy.visit('localhost:1080)
,因为我已经通过cy.visit()
(第二个唯一域)访问我的应用程序。所以我尝试了这个:
cy
.request('http://localhost:1080/')
.its('body') //this gives me only a list of headers
电子邮件存储在<tbody></tbody>
内部,但是上面的请求使我感到<tbody>
元素为空
我希望在存储电子邮件的地方看到tr
。有什么建议可以做到吗?
答案 0 :(得分:0)
不是我的解决方案,只是从Google和Cypress(https://github.com/cypress-io/cypress/issues/418)的github借来的:
电子邮件似乎是一种常见情况,可能需要 附加域。我们寻求的解决方案是使用 https://mailcatcher.me/使电子邮件在浏览器中可用 然后将代理添加到webpack-dev-server,以便可以在 与webapp相同的主机。这样,您可以将电子邮件视为 另一页,请访问它,然后单击链接。如果您需要打 后端服务器,您可以添加其他代理以使其可用 在webapp域上。
答案 1 :(得分:0)
我遇到了这种情况(与赛普拉斯进行了测试,以确保通过Mailcatcher成功发送了一封电子邮件),并采用了建议的代理请求方法。
我注意到Mailcatcher包含一个非常基本的API,使我可以通过以下URL获取已发送电子邮件的列表:
http:// localhost:1080 /消息
然后,我可以获取每封电子邮件的详细信息以及请求(将1
替换为Mailcatcher电子邮件的ID):
借助此界面,代理非常简单。在我的场景中,我使用PHP作为代理,设置类似于:
mailcatcher_proxy.php
中添加代码以从请求中获取参数,并使用cURL将请求返回到localhost:1080 / messages / 像魅力一样工作!