尝试在 cypress 中运行一个简单的测试,我导航到一个测试网站。问题是,所涉及的基本身份验证,只要求密码,不需要用户名,而且我似乎无法让它工作。
我尝试过以下方法,
Given("I log in to Staging", () => {
cy.visit("https://mywebsite.com", {
auth: {
username:'',
password: 'password',
},
});
});
以及上述的所有排列。当我使用 null 作为用户名时,也没有运气。
作为参考,我附上了我的弹出窗口的图片。我还尝试通过授权标头执行此操作,以及将密码输入到访问命令中的 URL 中。在其他地方找不到此问题的参考
您似乎遇到了为该特定网页和浏览器设置的登录提示。
以编程方式使用基本身份验证,但您必须提供用户名。
cy.visit("https://mywebsite.com", {
auth: {
username: 'please-fill-me-in', <-- cannot be blank
password: 'password',
},
})
登录提示的确切来源似乎取决于应用程序或应用程序正在使用的框架,此功能没有标准的浏览器机制。您必须向网站开发人员了解使用什么机制来存储提示(本地存储、cookie 或会话存储)。
然后在
beforeLoad
钩子中提供清除,类似
cy.visit('http://localhost:3000/#dashboard', {
auth: {
username: 'some-username',
password: 'password',
},
onBeforeLoad: (contentWindow) => {
Cypress.browser.cookies.remove(
details // object
)
},
})
您也可以尝试使用不同的浏览器运行测试,看看提示是否消失。