iframe이 무엇입니까?
iframe을는 HTML (즉, 현재의 HTML 문서 내의 다른 HTML 문서에 포함되는) 문서에서 문서로 태그 또는 부동 프레임 (FRAME)이다. IFRAME 요소는 (로우의 틀 내하다) 또 다른 문서를 포함하는 인라인 프레임을 생성한다.
상기 프레임 내에 배치 Iframe에 소자
iframe이 요소 내 셀레늄의 위치는, 먼저, 그렇지 않으면 요소를 찾을 수 없습니다 오류가 발생하지, 프레임 워크 내에서 iframe 및 다음 위치의 요소로 전환해야합니다.
A, 일반적인 스위칭은 iframe
driver.switch_to_frame (iframe_element) #의 iframe이의로 전환 driver.switch_to.default_content () #의 메인 페이지에 컷 다시 driver.switch_to_parent_frame () #의 이전 iframe이 다시 컷
두, iframe이 일반적인 시나리오
(1) 하나의 프레임은 iframe
Iframe에 전환 ->는 IFRAME 요소 내에 위치 -> 절단 홈 -> 요소 타겟팅
2 프레임은 iframe 복수 존재
iframe1로 전환 -> 위치 요소 iframe1 -> 잘라 홈 - iframe2에> 스위치 -> 위치 요소 iframe2 -> 컷 가정 -> 요소를 대상으로
3 iframe을 다른 프레임 워크 iframe에 포함
iframe1로 전환 - iframe2>를 스위치 -> 포지셔닝 부재 iframe2 -> 절단 홈 -> 요소 타겟팅
셋째, 예
iframe을 내 NetEase는 사서함 로그인, 계정과 암호 입력 요소, 그래서 아날로그 NetEase는 사서함 로그인은 다음 것을 :
1 # 아날로그 YORK 메일 로그 2 에서 셀레늄 오기 webdriver . 3 에서 시간 가져 SLEEP . 4 . 5 드라이버 = webdriver.Chrome () . 6 driver.get ( " https://email.163.com/ " ) #는 메일 입력 홈 YORK . 7 SLEEP . (3 ) . (8) . 9 iframe_ele = driver.find_element_by_tag_name ( " iframe이 " ) # 오기 ifarme 소자 10 driver.switch_to.frame (iframe_ele) # 1 은 iframe 프레임 절환 11driver.find_element_by_name ( " 이메일 " ) .send_keys ( " 자동 측정 " ) # 사서함 입력 12 driver.find_element_by_name ( " 비밀번호 " ) .send_keys ( " 123456 " ) #의 비밀 13 driver.find_element_by_id ( " doLogin " ) .click () # 클릭 로그인