이전 도움말에서는 기존 자동화 프로토콜인 WebDriver '기존' 및 Chrome DevTools 프로토콜 (CDP)과 각각의 장점 및 제약조건을 살펴봤습니다.
브라우저 자동화의 미래인 WebDriver BiDi를 사용해 보세요. WebDriver '기존'과 CDP의 장점을 모두 결합하는 것을 목표로 현재 개발 중인 새로운 표준 브라우저 자동화 프로토콜입니다. WebDriver BiDi는 양방향 통신을 약속하므로 기본적으로 빠르며 하위 수준 제어 기능이 포함되어 있습니다.
WebDriver BiDi | |
---|---|
WebDriver '기존' | Chrome DevTools 프로토콜 (CDP) |
최고의 교차 브라우저 지원 | 빠른 양방향 메시지 |
W3C 표준 | 하위 수준 제어 제공 |
테스트용으로 빌드됨 |
WebDriver BiDi의 비전은 개발자가 좋아하는 도구를 사용하여 테스트를 작성하고 모든 브라우저 또는 드라이버에서 테스트를 자동화하여 완전한 유연성을 제공하는 것입니다.

표준화
WebDriver BiDi 작업 그룹은 다양한 브라우저 공급업체, 오픈소스 브라우저 자동화 프로젝트, 브라우저 자동화 솔루션을 제공하는 회사로 구성됩니다. 이번 협력을 통해 브라우저 자동화의 미래가 밝아질 것으로 기대됩니다.

작업은 대부분 이 GitHub 저장소에서 이루어집니다. 모든 주요 브라우저 공급업체와 함께 실제 진행 상황을 보고하고 논란의 소지가 있거나 알려지지 않은 세부정보를 논의하는 월례 회의가 있습니다. 교차 기업 워킹 그룹은 결정이 모든 이해관계자와 일치하는지 확인합니다.
새 프로토콜을 수립하고 구현하는 것은 쉬운 일이 아닙니다. 이를 위해서는 다양한 공급업체가 협력하고 함께 노력해야 합니다. 이 프로세스에는 다음 과정이 포함됩니다.
- 사양: 제안에 대한 의견을 수집하기 위한 의견 요청 (RFC) 절차입니다.
- 확인: 플랫폼 전반에서 실행할 수 있으며 모든 구현의 정보 소스로 사용되는 일련의 테스트입니다.
- 구현: 브라우저가 사양에 따라 프로토콜을 구현하고 확인 테스트를 통과합니다.
도전과제
이 섹션에서는 호환성, 사용성, 구현 가능성 간의 균형을 맞추기 위해 WebDriver BiDi를 구현할 때 발생하는 문제를 자세히 살펴봅니다.
CDP 클론을 넘어서: 교차 브라우저 호환성 수용
Chrome 및 DevTools 관련 요소가 포함된 CDP는 WebDriver BiDi 사양에서 직접 복제할 수 없습니다. CDP를 있는 그대로 구현하는 것은 다른 브라우저에서는 불가능하므로 이를 수행하는 방법만 문서화하는 사양은 무의미합니다.
낮은 지연 시간 보장
WebDriver BiDi는 성능 저하 없이 지연 시간을 처리하도록 설계되어야 합니다. CDP에서는 클라이언트와 서버가 거의 항상 동일한 물리적 머신에서 실행되므로 지연 시간이 짧지만 WebDriver BiDi에서는 그렇지 않습니다. 따라서 WebDriver BiDi는 클라이언트와 서버 간에 필요한 왕복 횟수를 최소화해야 합니다.
BiDi에서 인체 공학적 특성 우선순위 지정
개발자가 WebDriver BiDi 클라이언트를 처음부터 빌드할 필요는 없지만 프로토콜을 지나치게 복잡하게 만들지 않는 것이 중요합니다. 지나치게 복잡한 BiDi는 구현하기 어렵을 뿐만 아니라 사용하기 어려워서 채택 및 사용을 방해합니다.
BiDi 구현 가능성 보장
WebDriver BiDi는 다양한 브라우저의 제한사항을 고려하여 현실적으로 구현할 수 있어야 합니다. 예를 들어 BiDi를 통해 클라이언트에 노출된 모든 JavaScript 객체를 유지하면 메모리 누수가 발생할 수 있지만, 객체를 유지하지 않으면 디버깅 및 페이지의 JavaScript와의 상호작용이 방해받을 수 있습니다. 성능을 저하시키지 않으면서 효과적인 브라우저 자동화를 실행할 수 있는 균형을 유지하는 것이 중요합니다.
과제 극복
이 섹션에서는 WebDriver BiDi 구현과 관련된 문제를 해결하기 위해 사용되는 전략을 설명합니다.
신속한 프로토타입 제작
구현 가능성 문제를 해결하는 것은 BiDi의 성공에 매우 중요합니다. 사양 및 테스트의 진행 속도를 높이기 위해 NodeJS를 사용한 신속한 프로토타입 제작 접근 방식을 채택했습니다. 이를 통해 다양한 솔루션을 실험할 수 있을 뿐만 아니라 웹 플랫폼 테스트의 개발도 용이해집니다.
성능을 고려한 설계
이 설계 결정은 성능에 따라 결정됩니다. WebDriver BiDi의 경우 대기 시간이 길어지는 경우가 있기 때문입니다. 예를 들어 브라우저에서 객체 ID와 값을 검색할 때 WebDriver BiDi는 왕복 1회만 필요하지만 CDP는 2회가 필요합니다. 이는 WebDriver BiDi가 단일 응답에서 ID와 값을 모두 반환할 수 있고 (결과는 JSON 직렬화 불가) CDP는 이를 별도로 반환해야 하기 때문입니다.
웹 플랫폼 테스트 (WPT) 강조
웹 플랫폼 테스트는 BiDi 작동에 중요한 역할을 합니다. 현재 WebDriver '기존' 및 WebDriver BiDi를 다루는 WPT는 모든 구현에 대한 신뢰할 수 있는 참조 역할을 합니다. 이러한 테스트는 다양한 구현에서 실행되고 통과되도록 설계되어 WebDriver BiDi의 성공에 중요한 일관된 교차 브라우저 프로토콜 실행을 보장합니다. 대시보드에서 최신 WPT 결과를 확인하세요.
계획 및 현재 진행 상황은 무엇인가요?
WebDriver BiDi 로드맵을 살펴보고 프로젝트의 방향을 파악하세요. 로드맵은 현재 진행 중이며 지속적으로 업데이트됩니다.
최신 웹 플랫폼 테스트를 참고하세요. 이 테스트는 정보 소스로 사용되며 브라우저별 구현 상태를 확인할 수 있습니다.
프로젝트 주요 기록을 확인하여 진행 상황을 모니터링하세요.
2023년의 성과를 살펴보고 최신 소식을 확인하세요.
WebDriver BiDi 지원: 참여 방법
WebDriver BiDi를 통한 브라우저 자동화의 미래가 기대되시나요? 다음과 같은 방법으로 지원을 표현할 수 있습니다.
- 초기 테스터 및 채택자가 되어 WebDriver BiDi의 미래를 만들어 보세요.
- 널리 홍보하기 #WebDriverBiDi 해시태그를 사용하여 소셜 미디어에 프로젝트를 공유합니다.
- 지원을 요청합니다. 기능 요청을 제출하거나 좋아하는 도구에서 WebDriverBiDi 채택 계획을 확인하세요.
- API에 관한 의견을 제공하여 RFC에 참여합니다.
자주 하는 질문
WebDriver BiDi가 Chrome DevTools 프로토콜 (CDP)을 대체하나요?
아니요. Chromium 기반 브라우저는 디버깅 목적으로 계속 CDP를 사용하지만 WebDriver BiDi는 더 인체공학적인 API로 테스트 요구사항을 해결하기 위한 새로운 사양입니다.
Puppeteer가 CDP를 사용하고 있으므로 Puppeteer가 지원 중단되는 건가요?
아니요. 하지만 WebDriver BiDi를 사용하면 Puppeteer가 교차 브라우저 자동화 도구가 될 수 있습니다.
공개 로드맵이 있나요?
예. GitHub에서 로드맵을 확인하세요.