梦想是指引我们前行的星光,无论夜有多黑,它总能照亮前方|

园龄:粉丝:关注:

selenium之Frame操作

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-8

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep

d = webdriver.Chrome()
# 设置浏览器窗口最大化
d.maximize_window()
# 打开QQ邮箱登录页面
d.get('https://mail.qq.com/')
# 切换iframe
d.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()

 

本文作者:云龙

本文链接:https://www.cnblogs.com/yunlong-study/p/16594116.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   云long  阅读(270)  评论(0编辑  收藏  举报
(评论功能已被禁用)
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开