>Java >java지도 시간 >'부실 요소 참조' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

'부실 요소 참조' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

DDD
DDD원래의
2024-11-04 22:12:02284검색

Why Do I Get

오래된 요소 참조: 이유 및 해결 방법

"오래된 요소 참조" 오류는 DOM의 요소를 더 이상 사용할 수 없을 때 발생합니다. 일반적으로 제거되거나 다시 생성되기 때문입니다. 제공된 코드에서는 BenefitStatusLi Xpath가 참조하는 요소가 더 이상 유효하지 않기 때문에 오류가 발생합니다.

HTML 구조에서는 BenefitStatus 링크가

  • 동적으로 로드되는 요소입니다. 코드는 탐색 링크 목록을 반복하고 BenefitStatus 텍스트를 검색합니다. 그러나 계산된 Xpath를 사용하여 요소를 클릭하려고 하면 해당 요소가 다른 Xpath가 있는 새로운 BenefitStatus 링크로 대체되었을 가능성이 높습니다.

    이 문제를 해결하려면 명시적 대기를 사용하여 요소가 로드되고 안정적입니다. 또한 요소 찾기를 다시 시도하여 오래된 요소 참조 예외를 처리합니다.

    <code class="java">WebDriverWait wait = new WebDriverWait(driver, 10);
    
    try {
        WebElement benefitStatLi = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(String.format(BenefitStatLi, i))));
        benefitStatLi.click();
    } catch (StaleElementReferenceException ex) {
        WebElement benefitStatLi = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(String.format(BenefitStatLi, i))));
        benefitStatLi.click();
    }</code>

    위 내용은 '부실 요소 참조' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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