>Java >java지도 시간 >Selenium 4는 Shadow DOM 요소와의 상호 작용을 어떻게 단순화할 수 있습니까?

Selenium 4는 Shadow DOM 요소와의 상호 작용을 어떻게 단순화할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-01 07:59:09309검색

How Can Selenium 4 Simplify Interaction with Shadow DOM Elements?

Selenium Java에서 Shadow DOM 요소 자동화

다단계 섀도우 루트 DOM 요소를 활용하고 상호 작용하는 풍부한 웹페이지에도 불구하고 Selenium findElement를 통해 어려운 것으로 입증되었습니다. Deep CSS 및 JS Executor와 같은 전통적인 방법은 효과가 없거나 번거로워졌습니다.

Selenium 4에 getShadowRoot() 메서드 도입

Selenium 버전 4에서는 WebElement.getShadowRoot() 메서드. 이 방법은 Shadow DOM 요소를 탐색하는 원활한 방법을 제공합니다. 코드 예는 다음과 같습니다.

driver.findElement(By.id("parentId")).getShadowRoot().findElement(By.cssSelector("label")).findElement(By.tagName("input"));

이 스니펫은 ID가 "parentId"인 상위 요소를 탐색하고, 해당 섀도우 루트를 입력하고, 섀도우 루트 내에서 레이블 요소를 찾은 다음, 마지막으로 해당 내의 입력 요소를 선택합니다. label.

섀도우 루트 내부에서는 탐색 옵션이 제한된다는 점에 유의하는 것이 중요합니다. Chrome의 경우 By.cssSelector() 및 By.className()만 지원되지만 By.id() 및 By.tagName()은 org.openqa.selenium.InvalidArgumentException이 발생할 수 있습니다.

위 내용은 Selenium 4는 Shadow DOM 요소와의 상호 작용을 어떻게 단순화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.