0


selenium中,切换iframe的方法

最近在学基于python+selenium的web自动化,在此记录下学习的东西,也希望可以跟学习这技能的小伙伴们分享、交流。

iframe也称作嵌入式框架,嵌入式框架和框架网页类似,它可以把一个网页的框架和内容嵌入在现有的网页中。在selenium进行定位时,如果需要定位某个iframe内的元素,需要先切换到该iframe下,以下提供切换到指定iframe的方法:

# 启动 Chrome 浏览器
driver = webdriver.Chrome()
#窗口最大化
driver.maximize_window()
#访问网页
driver.get("https://ke.qq.com/agency/index/index.html#tab=live_calendar")
#查找元素
driver.find_element_by_xpath('//a[contains(@class,"btns-enter-qq")]').click()
time.sleep(2)

#以上是进入页面的代码

方法一:使用iframe的name属性,要使用的iframe的name属性为‘login_frame_qq

driver.switch_to.frame("login_frame_qq")

方法二:先找到这个iframe,再切换到它

driver.switch_to.frame(driver.find_element_by_name("login_frame_qq"))

方法三:通过下标定位到该iframe

#比如顶层页面下内嵌了5个iframe,我们要切换到的iframe是第5个,可以这样写

driver.switch_to.frame(4)

还有一种方法,是在等待元素出现的时候,直接切换到该iframe

WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"login_frame_qq")))

#‘login_frame_qq’是iframe的name属性

切换之后去点击该iframe下的元素:

driver.find_element_by_id("switcher_plogin").click()

退出iframe的方法 - 回到了最外层的html页面:

driver.switch_to.default_content()

切换到上一级的iframe,如果没有上一级,那就保留在当前页面:

driver.switch_to.parent_frame()

标签: selenium python chrome

本文转载自: https://blog.csdn.net/weixin_43569834/article/details/130694662
版权归原作者 高老庄里的高小翠 所有, 如有侵权,请联系我们删除。

“selenium中,切换iframe的方法”的评论:

还没有评论