gpt4 book ai didi

angular - 如何使用 Cypress 测试 AWS Amplify Angular Authenticator 组件?

转载 作者:行者123 更新时间:2023-12-02 02:40:25 27 4
gpt4 key购买 nike

我希望能够在 cypress 测试中将测试输入“键入”到 AWS Amplify Authenticator 组件 (amplify-authenticator),如下所示:

describe('My Authenticator Test', () => {
it('should let me type in the username field', () => {
cy.visit('http://localhost:8100/');

cy.get('amplify-authenticator')
.find('input#username')
.type('<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1d6e7c706d71785d78657c706d7178337e7270" rel="noreferrer noopener nofollow">[email protected]</a>');
}
}

但是,即使我可以检查该元素并看到它:

enter image description here

Cypress 测试无法找到输入字段。

如何使用 Cypress 访问“用户名”字段(以及其他类似字段)?

最佳答案

由于 AWS Amplify Authenticator 是一个具有“shadow DOM”的组件,我们需要通过编辑 cypress.json 文件并添加“experimentalShadowDomSupport”条目来启用 Cypress 中的 Shadow Dom 支持,如下所示:

{
"supportFile": "cypress/support/index.ts",
"experimentalShadowDomSupport": true
}

现在我们可以在测试中搜索 Shadow DOM 中的组件,如下所示:

describe('My Authenticator Test', () => {
it('should let me type in the username field', () => {
cy.visit('http://localhost:8100/');

cy.get('amplify-authenticator')
.shadow()
.get('amplify-sign-in')
.shadow()
.find('amplify-form-section')
.find('amplify-auth-fields')
.shadow()
.as('amplifyAuthFields');

cy.get('@amplifyAuthFields')
.find('amplify-username-field')
.shadow()
.find('amplify-form-field')
.shadow()
.find('input#username')
.type('<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2350424e534f4663465b424e534f460d404c4e" rel="noreferrer noopener nofollow">[email protected]</a>');

cy.get('@amplifyAuthFields')
.find('amplify-password-field')
.shadow()
.find('amplify-form-field')
.shadow()
.find('input#password')
.type('Password123');
});
});

在这里,我使用 Cypress Aliases 来重用部分选择器链。

因为您经常想要执行此操作,所以最好将身份验证器驱动代码抽象到其自己的 Cypress 自定义命令中。

关于angular - 如何使用 Cypress 测试 AWS Amplify Angular Authenticator 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63716193/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com