셀레늄을 사용하여 로그인을 시뮬레이션 할 때 로그인 버튼 요소를 얻은 후 클릭 () 메소드를 직접 호출하여 로그인 점프를 달성 할 수 있으며 현재 웹 드라이버도
이것은 현재 페이지에서는 괜찮지 만 페이지 로딩 속도는 일반적으로 프로그램 실행 속도보다 낮기 때문에 로그인 후 페이지의 요소를 얻기 전에 WebDriverWait의 UTIL 방법을 사용하거나 Stred.Sleep ()를 직접 사용할 수 있습니다 (권장하지 않음).
그러나 블로그의 주요 요점은 일반 하이퍼 링크를 클릭하여 새 페이지를 입력하면 위의 메소드를 통해 새 페이지 요소를 얻을 수 없다는 것입니다.
솔루션 : 먼저, 창의 모든 핸들을 가져온 다음 핸들이 존재할 때 까지이 핸들 컬렉션을 반복하여 현재 창 핸들 (currenthandle)과 다르고 이전 웹 드라이버를 새 핸들로 가리키는 페이지로 전송합니다.
코드는 다음과 같습니다.
문자열 currentWindow = driver.getWindowHandle (); // 현재 창의 핸들을 가져옵니다. <string> handles = driver.getWindowHandles (); // 모든 Windows iterator <string> it = handles.iterator ()의 핸들을 가져옵니다. Webdriver Newdriver = null; while (it.hasnext ()) {문자열 핸들 = it.next (); if (! handle.equals (currentWindow)) {driver = driver.switchto (). 창 (핸들); // 새 핸들이 가리키는 창 브레이크로 전환합니다. }}셀레늄을 기반으로 새로운 페이지 요소를 얻지 못하는 실패에 대한 해결책은 편집기가 공유하는 전체 컨텐츠입니다. 나는 그것이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.