Cypress에서 Amplify Authenticator(React) 텍스트 상자를 가져오는 방법
Cypress를 통해 로그인하려면 일반적인 CSS 선택기는 얻을 수 없기 때문에 해결 방법의 비망록입니다.
하고 싶은 일
Amplify Authenticator의 로그인 화면의 텍스트 상자를 가져와cypress에서 로그인 ID와 비밀번호를 입력하는 테스트를 하고 싶습니다.
Amplify Authenticator의 기본 코드
Amplify Authenticator에서 React의 로그인 화면을 표시하려면 다음과 같이 하십시오.
공식 사이트
import React from "react";
import Amplify from "aws-amplify";
import {AmplifyAuthenticator, AmplifySignOut} from "@aws-amplify/ui-react";
import awsconfig from "./aws-exports";
Amplify.configure(awsconfig);
const App = () => (
<AmplifyAuthenticator>
<div>
My App
<AmplifySignOut />
</div>
</AmplifyAuthenticator>
);
그냥 CSS 선택기로 해봤어요.
일반 CSS 선택기는 가져올 수 없습니다.
cy.get('#email').type('hoge');
섀도우 DOM 가져오기
Amplify Authenticator의 로그인 화면이 shadow DOM이기 때문에 shadow를 사용하면 얻을 수 있습니다.
cy.get('amplify-sign-in').shadow().find('#email').type('hoge');
별칭 만들기
소절
cy.get('amplify-sign-in').shadow()
이긴 하지만 별명을 만들면 편해요.cy.get('amplify-sign-in').shadow().as('sign-in');
cy.get('@sign-in').find('#email').type('hoge');
총결산
Authenticator라기보다는 shadow DOM의 취득 방법에 대한 기사다.
참조 사이트:
Reference
이 문제에 관하여(Cypress에서 Amplify Authenticator(React) 텍스트 상자를 가져오는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/a_o/articles/fb1ed4a5018c2a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)