문제: 명시적인 전환 없이 iframe 또는 중첩된 iframe 내의 요소 선택 프레임.
답변:
아니요, 해당 iframe으로 전환하지 않고 iframe 내의 요소와 직접 상호작용하는 것은 불가능합니다. Selenium의 기본 초점은 상단 창에 유지됩니다.
이유:
웹 페이지가 로드되면 Selenium의 초점은 기본(최상위) 창에 있습니다. iframe 내의 요소와 상호작용하려면 해당 iframe으로 명시적으로 전환해야 합니다.
프레임 전환 방법:
프레임을 전환하는 방법에는 세 가지가 있습니다.
프레임별 이름:
driver.switch_to.frame("iframe_name")
프레임 ID별:
driver.switch_to.frame("iframe_id")
프레임별 색인:
driver.switch_to.frame(0) # Index of the frame
메인 프레임으로 다시 전환하려면 다음을 사용하세요.
driver.switch_to.default_content()
더 나은 접근 방식: WebDriverWait
더 나은 접근 방식은 WebDriverWait을 다음과 함께 사용하는 것입니다. Frame_to_be_available_and_switch_to_it 조건:
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.ID, "iframe_id")))
이 메소드는 지정된 프레임이 사용 가능해질 때까지 기다렸다가 해당 프레임으로 전환합니다.
동적으로 로드된 요소 처리:
요소가 동적으로 로드되는 경우 ExpectedConditions를 사용하여 상호작용하기 전에 표시되는 요소:
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, "element_id")))
참조:
자세한 내용은 다음을 참조하세요.
위 내용은 Selenium은 프레임을 명시적으로 전환하지 않고도 Iframe 요소와 상호 작용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!