>  Q&A  >  본문

Selenium에서 "StaleElementReferenceException" 오류를 방지하는 방법

<p>저는 Java로 많은 Selenium 테스트를 구현하고 있습니다. 가끔 <code>StaleElementReferenceException</code>으로 인해 테스트가 실패합니다. </p> <p>테스트를 더욱 안정적으로 만들 수 있는 몇 가지 방법을 제안해 주실 수 있나요? </p>
P粉920835423P粉920835423425일 전585

모든 응답(2)나는 대답할 것이다

  • P粉899950720

    P粉8999507202023-08-22 15:30:51

    이런 문제가 있었던 적이 있었는데 나도 모르는 사이에 BackboneJS가 페이지에서 실행되고 있었고 이것이 내가 클릭하려고 했던 요소를 대체했습니다. 내 코드는 다음과 같습니다.

    으아악

    물론 기능적으로는 아래 코드와 동일합니다.

    으아악

    때때로 자바스크립트가 찾기와 클릭 사이의 checkoutLink 요소를 대체하는 경우가 있습니다.

    으아악

    링크를 클릭하려고 하면 StaleElementReferenceException이 발생합니다. WebDriver에게 javascript 실행이 완료될 때까지 기다리도록 지시하는 신뢰할 수 있는 방법을 찾을 수 없었기 때문에 이것이 문제를 해결한 방법입니다.

    으아악

    이 코드는 클릭이 성공하거나 시간 초과에 도달할 때까지 StaleElementReferenceException 예외를 무시하고 계속해서 링크 클릭을 시도합니다. 이 솔루션은 재시도 논리를 작성하는 번거로움을 없애고 WebDriver의 내장 구성만 사용하기 때문에 마음에 듭니다.

    회신하다
    0
  • P粉343141633

    P粉3431416332023-08-22 13:04:24

    이는 페이지에서 DOM 조작이 일시적으로 요소에 액세스할 수 없게 되는 경우에 발생합니다. 이러한 상황을 처리하려면 마지막으로 예외가 발생할 때까지 루프에서 요소에 여러 번 액세스하려고 시도할 수 있습니다.

    darrelgrainger.blogspot.com에서 이 훌륭한 솔루션을 사용해 보세요.

    으아악

    회신하다
    0
  • 취소회신하다