문제를 해결하기 위해 위치 결정 소자 셀레늄 자동화에 대해서는 여러 가지 방법

바로 포인트, 속히, 문제 발생 위치의 요소를 수행하고 클릭 작업을 찾을 수 없습니다 :

당신이 비난 하가 발생하는 경우 1. 위치 요소는 일반적으로 당신이 할 수있는, 다음과 같은 세 가지 사례를 가지고 있지

가. 원소이 찾고있는 것은 현재 창에없는

해결 방법 : 사용 driver.switch_to.window (), 일반적으로 윈도우의 복수, 창을 전환 마지막 스위치에 창을 사용 할 수있게됩니다

우선 현재 창을 얻을 = all_win driver.window_handles

이어서 driver.switch_to.window하는 마지막 창으로 전환 (all_win [-1]) 또는 driver.switch_to.window (driver.window_handles [-1])

, 새로운 윈도우의 대부분은 마지막 열 인덱스에 직접 사용 [-1] : 주 ) (driver.getWindowHandle와 현재 창 핸들을 가져올 수

(B). 현재의 구성 요소는 현재 페이지 아니지만, 프레임 또는 iframe 프레임 워크

용액 : 처음 확인 원 페이지 프레임 또는 iframe 태그 직접 frame_names를 사용하여 인코딩 될 수 = find_elements_by_tag_name ( 'iframe이') 또는 ( '프레임') 원소 찾기가 있는지, 그리고 frame_names에게 변수리스트를 넣어

이어서 driver.switch_to.frame (frame_names [0]) frame_names 길이 렌 0부터이 케이블 (frame_names) -1 프레임에 따라, 프레임의 첫 번째 프레임으로 전환, 만일 마지막 프레임에 직접 스위치 rame_names가 [-1] 첨자 데 사용

이때, 위치 결정 요소는 driver.find_element_by_xxx 방법에 찾을 수있다.

참고 : 당신이 iframe에 포함 된 다층을 사용할 수있는 사람은 iframe로 전환) (driver.switch_to.parent_frame 도 사용할 수 있습니다, 홈 페이지 driver.switch_to.default_content로 전환 ()

다. 페이지가로드 천천히, 그것은 위치 요소에로드되어 있지 않은

해결 방법 : 디스플레이를 webdriverwait 등 수면 위치 결정 요소 앞에 대기 시간을 설정 대기

 

추천

출처www.cnblogs.com/oscarforever/p/11573943.html