web自动化测试-selenium多表单切换
一、概述
1、在web应用中会经常遇到frame/iframe表单嵌套页面的应用
2、WebDriver只能在一个页面上对元素进行识别与定位
3、对于frame/iframe表单内嵌的页面上元素无法识别与定位
4、此时就需要切换到frame/iframe表单中
5、通过switch_to.frame()方法进行切换
6、方法说明
switch_to.parent_content() 跳出当前表单,回到上一级表单
switch_to.default_content() 跳到最外层的页面
可以通过frame_name、索引、webelement对象,建议采用webelement对象
 driver.switch_to.frame('frame_name')
 driver.switch_to.frame(1) 
3 driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
二、代码实现
from selenium import webdriver dr = webdriver.Chrome()
dr.implicitly_wait(10)
dr.get('http://xxxxxxxxxxx') #定位到frame元素
frame=dr.find_element_by_xpath('xxxxx')
dr.switch_to.frame('webelement对象') #回到最外层页面
dr.switch_to.default_content() #返回上一层的frame
dr.switch_to.parent_frame('webelement对象') dr.quit()
web自动化测试-selenium多表单切换的更多相关文章
- selenium 多表单切换处理(iframe/frame)
		在web应用中,前台网页的设计一般会用到iframe/frame表单嵌套页面的应用.简单的就是一个页面签嵌套多个HEML/JSP文件.selenium webdriver 只能在同一页面识别定位元素 ... 
- selenium多表单切换以及多窗口切换、警告窗处理
		selenium表单切换 在做UI自动化,有时候要定位的元素属性在页面上明明是唯一的.却怎么也不执行对元素的操作动作,这时候多半是iframe表单在作怪. 切入表单:iddriver.switch_t ... 
- selenium 多表单切换
		frame/iframe表单嵌套页面的应用.WebDrivr只能在一个页面上对元素识别与定位,对于在frame/iframe表单内嵌页面上的元素无法直接定位.这时需要使用 switch_to.fram ... 
- Selenium 2自动化测试实战15(多表单切换)
		一.多表单切换 在web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位.这 ... 
- selenium webdriver——多表单切换与多窗口切换
		多表单切换 >>在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe 表单内嵌页面上的元素无 ... 
- Selenium 3----定位一组元素+多表单切换+多窗口切换
		定位一组元素 和定位单个元素类似,WebDriver提供了8种用于定位一组元素的方法.定位一组元素的方法与定位单个元素的方法类似,唯一的区别是在单词element后面多了一个s表示复数. find_e ... 
- webdriver--定位一组元素+iframe表单切换
		定位一组元素:find_elements,返回的是list,所以可以用列表的索引对列表里的某个元素操作,也可以用for循环访问list,依次操作各元素 driver.find_elements_by_ ... 
- Selenium常用API的使用java语言之13-多表单切换
		在 Web 应用中经常会遇到 frame/iframe 表单嵌套页面的应用, WebDriver 只能在一个页面上对元素识别与 定位, 对于 frame/iframe 表单内嵌页面上的元素无法直接定位 ... 
- selenium基础(多表单切换、多窗口切换)
		一.多表单的切换 frame:HTML页面中的一中框架,主要作用是在当前页面中指定区域显示另一页面元素: (HTML语言中,frame/iframe标签为表单框架) 在web ... 
随机推荐
- 全网最详细的Windows里Git client客户端管理工具SourceTree的下载与安装(图文详解)
			不多说,直接上干货! 很多人用Git命令行不熟练,那么可以尝试使用SourceTree进行操作. 安装之前的必备 (1)Git的安装 Git学习系列之Windows上安装Git详细步骤(图文详解 ... 
- 005 SpringCloud 学习笔记01-----系统架构的演变
			1.系统架构的演变 随着互联网的发展,网站应用的规模不断扩大.需求的激增,带来的是技术上的压力.系统架构也因此不断的演进.升级.迭代.从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服 ... 
- springboot结合日志门面SLF4j和日志实现Logback的使用
			一.此处主要介绍在springboot工程下如何使用 logback + slf4j 进行日志记录. logback主要包含三个组成部分:Loggers(日志记录器).Appenders(输出目的在 ... 
- JAVA 8 的新特性
			Java8的新特性有:默认方法.函数式接口.lambda表达式.方法引用.Stream.Optional.日期API. 一.默认方法: 接口中的方法可以有方法体,但是必须要有static或者defau ... 
- 用Scratch制作一个Hello World程序
			网上出现了很多Hello World程序,看的小编心里也痒痒的,为此这次作为南京小码王Scratch培训机构的小编,就为大家来详细的了解下Scratch制作Hello World程序的过程,现在就和小 ... 
- 远程登录Linux系统(使用xshell),远程上传加载文件(使用Xftp)
			一.Xshell(远程登录Linux系统) 1.安装xshell 自己百度找安装包 2.连接登录 1.连接前提 需要Linux开启一个sshd的服务,监听22号端口,一般默认是开启的 查看是否开启: ... 
- Akka-CQRS(9)- gRPC,实现前端设备与平台系统的高效集成
			前面我们完成了一个CQRS模式的数据采集(录入)平台.可以预见:数据的产生是在线下各式各样的终端系统中,包括web.桌面.移动终端.那么,为了实现一个完整的系统,必须把前端设备通过某种网络连接形式与数 ... 
- U9单据打印模板自定义扩展字段显示名称
			UBF打印模板中,单据自定义扩展字段显示均为扩展字段值集值编码,而在实际运用过程中打印时需要显示扩展字段名称,具体实现方法如下 方式一:采用SQL系统定义函数[dbo].[fn_GetSegName] ... 
- linux安装mysql后报错启动不了Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
			今天安装完Mysql后,开启发生了错误: 2.打开错误信息文件,查看错误原因是:Plugin 'FEDERATED' is disabled. /usr/sbin/mysqld: Table 'mys ... 
- C# 练习题 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
			题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析: 兔子的规律为数列1,1,2,3,5,8, ... 
