首页 > 其他分享 >selenium之Frame操作

selenium之Frame操作

时间:2022-08-17 11:15:07浏览次数:61  
标签:driver Frame selenium switch 切换 操作 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()

 

标签:driver,Frame,selenium,switch,切换,操作,frame
From: https://www.cnblogs.com/yunlong-study/p/16594116.html

相关文章

  • Git之清除历史记录操作
    近期公司需要将之前代码仓库中的提交记录都清理,所以操作一下,记录一下步骤:安全考虑:有时候在提交代码时,不小心提交了敏感数据,如账号密码什么的,这样在历史记录中就可以......
  • 还在为如何编写Web自动化测试用例而烦恼嘛?资深测试工程师手把手教你Selenium 测试用例
    原文链接本文节选自霍格沃兹测试开发学社内部教材编写Selenium测试用例就是模拟用户在浏览器上的一系列操作,通过脚本来完成自动化测试。编写测试用例的优势:开源,免......
  • selenium之截屏操作
    截屏通过搜索文档,可以发现,Selenium提供了以下两种类型的截屏功能:[WebElement.screenshot(filename)][WebElement.screenshot]:该方法可以对元素进行截屏,如下代码所示:......
  • .NET ORM 操作ClickHouse数据库
    ClickHouse应用场景ClickHouse是俄罗斯的Yandex于2016年开源的用于在线分析处理查询(OLAP:OnlineAnalyticalProcessing)MPP架构的列式存储数据库(DBMS:DatabaseManag......
  • swap(a, b)异或骚操作方法
    众所周知,平日里我们如果要交换两个变量的时候,通常都是voidswap(inta,intb){inttemp=a;a=b;b=temp;}通过创建temp变量,保存其中一个的值,再交......
  • 【鸟哥 Linux 10.4】Linux Bash Shell 操作环境(包含通配符相关内容)
    【鸟哥Linux10.4】LinuxBashShell操作环境(包含通配符相关内容)Linux命令的路径搜寻顺序当我们在linux终端输入一行命令,系统是怎么直到我们要执行的是什么呢?其实系......
  • ES 增删改(关于文档的操作)
    1、create新增记录1.1新增记录不指定id,让es自动生成POSTlogs/_doc{"Level":"Warn","Content":"111"}结果如下:{"_index":"logs","_id":"Hd5v......
  • 了解使用Java语言操作数据库的API之JDBC
    一、简单了解JDBC是官方定义的一套使用Java语言操作数据库的API,各数据库厂商按照此标准定义各自的实现类,因此在使用JDBC操作不同的数据库时,需导入对应的驱动jar包。二......
  • java-代码操作服务器之SSH连续发送命令
    java操作Linux服务器可以使用专用的jar包,这里介绍使用jsch操作Linux服务器maven依赖<dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactI......
  • Idea中Git的常用操作及可能存在的问题
    一、使用1、从git上下载项目(pull)(1)默认branch下载 (2)指定branch下载 2、提交项目到临时(commit) 2、上传项目到git仓库(push) 3、更新仓库中的项目(update) 4、切......