WebdriverIO의 새로운 접근성 선택기로 앱의 접근성을 유지하고 e2e 테스트를 안정적으로 유지하십시오.
버전
v7.24.0
에 도입된 접근성 선택기를 통해 WebdriverIO는 이제 특정 접근성 이름이 포함된 다양한 요소를 가져오는 강력한 방법을 제공합니다. 보조 장치에서 인식하지 못하는 요소에 임의data-testId
속성을 적용하는 대신 개발자 또는 QA 엔지니어는 이제 요소 자체에 올바른 접근성 이름을 적용하거나 개발 팀에 접근성을 개선하도록 요청하여 쓰기 테스트가 쉽게.WebdriverIO는 내부적으로 xPath 선택기 조건 체인을 사용하여 올바른 요소를 가져옵니다. 프레임워크는 브라우저의 접근성 트리에 액세스할 수 없지만 여기에서 올바른 이름만 추측할 수 있습니다. 접근성 이름은 작성자가 제공한 이름과 콘텐츠 이름을 기반으로 계산되므로 WebdriverIO는 특정 순서에 따라 요소를 가져옵니다.
aria-labelledBy
또는 aria-describedBy
속성이 있는 요소를 찾으려고 합니다. 예: <h2 id="social">Social Media</h2>
<nav aria-labelledBy="social">...</nav>
따라서 다음을 통해 탐색 내에서 특정 링크를 가져올 수 있습니다.
await $('aria/Social Media').$('a=API').click()
aria-label
가 있는 요소를 찾습니다. 예: <button aria-label="close button">X</button>
X
를 사용하여 요소를 가져오거나 테스트 ID 속성을 적용하는 대신 다음과 같이 할 수 있습니다. await $('aria/close button').click()
<label for="username">Username</label>
<input id="username" type="text" />
이제 다음을 통해 입력 값을 설정할 수 있습니다.
await $('aria/Username').setValue('foobar')
placeholder
또는 aria-placeholder
속성입니다. <input placeholder="Your Username" type="text" />
이제 요소를 가져오는 데에도 사용할 수 있습니다.
await $('aria/Your Username').setValue('foobar')
<img alt="A warm sommer night" src="..." />
이러한 이미지는 이제 다음을 통해 가져올 수 있습니다.
await $('aria/A warm sommer night').getTagName() // outputs "img"
<h1>Welcome!</h1>
이러한 제목 태그는 이제 다음을 통해 가져올 수 있습니다.
await $('aria/Welcome!').getTagName() // outputs "h1"
보시다시피 요소의 접근성 이름을 정의하는 다양한 방법이 있습니다. 많은 브라우저 디버깅 도구는 요소의 적절한 이름을 찾는 데 도움이 되는 편리한 접근성 기능을 제공합니다.
For more information check out the Chrome DevTools or Firefox Accessibility Inspector docs.
접근성은 포괄적인 웹을 만드는 강력한 도구일 뿐만 아니라 안정적이고 읽기 쉬운 테스트를 작성하는 데도 도움이 됩니다. 계속해서 모든 요소에
aria-label
를 부여해서는 안 되지만, 이 새로운 선택기는 접근성을 염두에 두고 웹 응용 프로그램을 구축하는 데 도움이 될 수 있으므로 나중에 e2e 테스트를 작성하는 것이 훨씬 쉬워집니다.읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(WebdriverIO의 새로운 접근성 선택기로 앱의 접근성을 유지하고 e2e 테스트를 안정적으로 유지하십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/christian_bromann/keep-your-apps-accessible-and-your-e2e-tests-stable-with-webdriverios-new-accessibility-selector-4fkf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)