首页 > 编程学习 > selenium之Frame操作

selenium之Frame操作

发布时间:2022/8/17 11:04:41

frame介绍

 

 

frame切换方法

说明:在Selenium中封装了如何切换frame框架的方法

方法:
1). driver.switch_to.frame(frame_reference) --> 切换到指定frame的方法
frame_reference:可以为frame框架的name、id或者定位到的frame元素

2). driver.switch_to.default_content() --> 恢复默认页面方法

在frame中操作其他页面,必须先回到默认页面,才能进一步操作


补充

Frame标签有Frameset,Frame和iFrame三种。Frameset可以直接按照正常元素定位。Frame和iFrame的定位方法相同,需要把驱动切换到Frame内再进行操作。
切换方法:
1:通过frame的id属性:driver.switch_to.frame(‘id属性’)
2:通过frame的name属性:driver.switch_to.frame(‘name属性’)
3:通过index来定位:driver.switch_to.frame(0) 其中0表示第一个iframe

示例:

登录QQ邮箱。QQ邮箱登录,其用户名密码等嵌套在iFrame内,其iFrame的id属性值为“login_frame”,因此需要先进行切换。

 

 

# coding = utf-8from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom time import sleep

d = webdriver.Chrome()# 设置浏览器窗口最大化d.maximize_window()# 打开QQ邮箱登录页面d.get('https://mail.qq.com/')# 切换iframed.switch_to.frame('login_frame')# 输入qq号d.find_element(By.ID, 'u').send_keys('1234567')# 输入密码d.find_element(By.ID, 'p').send_keys('7654321')# 点击登录d.find_element(By.ID, 'login_button').click()# 强制等等2秒查看效果sleep(2)# 关闭浏览器d.quit()

注意:上面的代码已经切换到Frame内部,此时只能对Frame内部元素进行操作,若要对Frame之外的元素进行操作,则需要切换出去,切换方法如下:driver.switch_to.default_content()

 

Copyright © 2010-2022 mfbz.cn 版权所有 |关于我们| 联系方式|豫ICP备15888888号