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 중국어 웹사이트의 기타 관련 기사를 참조하세요!