본문 바로가기
파이썬

파이썬, 셀레늄에서 프레임을 전환하는 기능

by º기록 2020. 11. 29.
반응형

두 프레임 사이를 쉽게 전환 할 수있는 기능을 찾고 있습니다. 지금은 프레임 사이를 전환해야 할 때마다 다음 코드로이 작업을 수행하고 있습니다.

driver.switch_to.frame(driver.find_element_by_css_selector("frame[name='nav']"))

driver.switch_to.frame(driver.find_element_by_css_selector("frame[name='content']"))

내 목표는 나머지는 기본적으로 동일하기 때문에 탐색 또는 내용을 변경하기 위해 인수를 취하는 함수를 얻는 것입니다.

내가 이미 시도한 것은 다음과 같습니다.

def frame_switch(content_or_nav):
x = str(frame[name=str(content_or_nav)] #"frame[name='content_or_nav']"
driver.switch_to.frame(driver.find_element_by_css_selector(x))

하지만 그것은 나에게 오류를 준다

 x = str(frame[name=str(content_or_nav)]
                  ^

SyntaxError : 잘못된 구문

 

해결 방법

 

이것이 작성되는 방식은 CSS 코드를 Python 코드로 구문 분석하려고합니다. 당신은 그것을 원하지 않습니다.

이 기능이 적합합니다.

def frame_switch(css_selector):
  driver.switch_to.frame(driver.find_element_by_css_selector(css_selector))

name 속성을 ​​기반으로 프레임으로 전환하려는 경우 다음을 사용할 수 있습니다.

def frame_switch(name):
  driver.switch_to.frame(driver.find_element_by_name(name))

기본 창으로 다시 전환하려면 다음을 사용할 수 있습니다.

driver.switch_to.default_content()

 

참조 페이지 https://stackoverflow.com/questions/28723143

 

 

반응형

댓글