我正在尝试运行简单的 cypress 测试并得到如下错误:
但是如果我将访问 url 更改为另一个 - 它会正常打开:
我不明白为什么这个错误会出现在这个 url 中:
"baseUrl":"https://apps.powerapps.com/play/f1t75er8-03c9-4cc7-996d-6743cd7eac4a"
另一个可见的错误:代码:
describe("Create request", () => {
it("Should have a link that navigates to office365 login", () => {
cy.visit("/");
cy.get('div[class="loginNeededText_uf5ohz"]').contains('Sign in to start using Power Apps');
});
});
附言也无法加载 https://apps.powerapps.com/页。错误:最佳答案
一般来说
使用 Cypress,您不应该尝试 visit or interact with sites or servers you do not control . Cypress 的主要目的是测试,所以当你尝试用它做任何其他事情时,任务会变得更加复杂(你可以在 the Cypress documentation 中阅读更多关于它的信息)。
如果您确实需要来自第 3 方站点的信息,建议您通过 API 来实现——主要是使用 cy.request()
方法(例如,Microsoft 有大量关于如何使用 Office 365 Management API 的文档)。
你的情况
当您访问 apps.powerapps.com 时,您将被重定向到 Microsoft 登录页面 — 它有一个不同的域名,这打破了 same-origin policy导致 Cypress 控制台中的跨域错误。
似乎您在 baseUrl
中指定的页面返回 404
状态代码,以及控制台中一些丑陋的 CORS 错误,这表明应用程序本身存在问题。解决了这些问题后,您很可能仍然需要进行身份验证,最好通过 API 来完成。
关于testing - Cypress 测试不打开 Powerapps 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68940926/