selenium 기반 새 페이지 요소 가 져 오 는 데 실패 한 해결 방법

우리 가 selenium 을 사용 하여 아 날로 그 로그 인 을 실현 할 때 로그 인 버튼 요 소 를 가 져 온 후에 click()방법 을 직접 호출 하면 로그 인 점프 를 실현 할 수 있 고 이때 웹 드라이버 도 가리 키 고 있 습 니 다.
현재 페이지,이것 은 문제 가 없습니다.그러나 주의해 야 할 것 은 페이지 로 딩 속도 가 프로그램 실행 속도 보다 작 기 때문에 로그 인 후 페이지 의 요 소 를 가 져 오기 전에 WebDriverWait 의 util 방법 으로 해결 할 수도 있 고 Thread.sleep()를 통 해 프로그램 을 잠 들 게 할 수도 있 습 니 다(추천 하지 않 음).
그러나 보 는 우리 가 일반 하이퍼링크 를 클릭 하여 새로운 페이지 에 들 어가 면 위의 방법 을 통 해 새로운 페이지 요 소 를 얻 을 수 없다 는 것 이 중점 이다.이때 웹 드라이버 는 여전히 이전 페이지 를 가리 키 기 때문이다.
해결 방법:우선 창의 모든 핸들 을 가 져 온 다음 이 핸들 을 옮 겨 다 니 며 집합 합 니 다.핸들(handle)이 현재 창의 핸들(currentHandle)과 다 를 때 까지 이전 웹 드라이버 를 새 핸들(handle)이 가리 키 는 페이지 로 이동 합 니 다.
코드 는 다음 과 같 습 니 다:

 String currentWindow=driver.getWindowHandle(); //         
 Set<String> handles=driver.getWindowHandles(); //         
 Iterator<String> it=handles.iterator();
 WebDriver newDriver=null;
 while (it.hasNext()){
  String handle=it.next();
  if(!handle.equals(currentWindow)){  
  driver=driver.switchTo().window(handle); //             
   break;
  }
 }
이상 의 이 selenium 을 바탕 으로 새로운 페이지 요 소 를 얻 는 데 실패 한 해결 방법 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기