Selenium WebDriver의 오래된 요소 참조 예외: 문제 해결 및 해결
이전에 얻은 WebElement 참조가 유효하지 않게 되면 Selenium WebDriver의 오래된 요소 참조 예외가 발생합니다. 기본 DOM의 변경으로 인해. 이 문제는 요소가 동적으로 업데이트되거나 제거되어 기존 참조가 더 이상 사용되지 않게 렌더링될 때 발생합니다.
예외 원인
예외는 다음과 같은 경우에 발생할 수 있습니다.
예제 코드 및 예외 세부 정보
제공된 코드 조각은 대화 상자가 열릴 때 DOM이 변경되므로 요소 인식 중에 예외가 발생합니다.
WebElement textElement = driver.findElement(By.name("createForm:dateInput_input"));
오류 추적에 다음 메시지가 표시됩니다.
org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document
해결책: WebElement 참조 새로 고침
문제를 해결하려면 문제가 발생하면 이를 무효화할 수 있는 DOM 변경 후 WebElement 참조를 새로 고쳐야 합니다. 일반적으로 사용되는 솔루션은 다음과 같습니다.
WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("createForm:dateInput_input")));
WebElement textElement = (WebElement) ((JavascriptExecutor) driver) .executeScript("return document.querySelector('input[name=\"createForm:dateInput_input\"]')");
추가 팁
위 내용은 Selenium WebDriver에서 부실 요소 참조 예외를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!