Selenium - Switch & Select Api
一、多表单切换 driver.switch_to.frame()
iframe :直接将一个html 页面嵌入另一个html 页面中
switch_to.frame() 默认可以直接取表单的id 或 name 属性
#切换iframe,一定要一层一层找,层级一旦错误就定位失败
# driver.switch_to.frame('top-frame')
# driver.find_element_by_css_selector('#newtag').send_keys(111)
# iframe = driver.find_element_by_css_selector('iframe[src="/new-index/"]')
# driver.switch_to.frame(iframe)
# driver.find_element_by_css_selector('#newtag').send_keys(111) # driver.switch_to.frame('baidu-frame')
# driver.find_element_by_css_selector('#kw').send_keys(111)
# driver.switch_to.default_content()#返回到最外层的iframe
# driver.switch_to.parent_frame()#返回到上一层iframe
#最外层->top-frame -> baidu-frame 二、多窗口切换 driver.switch_to.window()
# 获取当前所有打开的窗口的句柄
handles = driver.window_handles
# 获取当前窗口句柄
handle = driver.current_window_handle
# SwitchToWindows接受浏览器TAB的句柄
driver.switch_to.window(handles[1])
# 获取所有的tab名称
# driver.find_element_by_css_selector('[href="/new-index/"]').click()
# all = driver.window_handles
# print(all)
# 切换页面
# driver.switch_to_window(all[1])
# driver.find_element_by_css_selector('#newtag').send_keys(111)
# driver.close() # 光标不会回到上一个页面,需要重新切回
# driver.switch_to_window(all[0])
# driver.quit()
三、警告框处理 driver.switch_to.alert() driver.switch_to.confirm() driver.switch_to.prompt()
方法定位到alert/confirm/prompt,然后使用text/accept/dismiss/send_keys等方法进行操作
e = driver.find_element_by_css_selector('#alert')
e.click()
# print(driver.switch_to.alert.text) #打印弹窗内容
# driver.switch_to.alert.accept() #确认系统弹窗
# driver.switch_to.alert.dismiss()#取消
# 发送文本至警告框。keysToSend :将文本发送至警告框
driver.switch_to.alert.send_keys(keysToSend= 'keysToSend')
四、Select
在UI自动化测试过程中,经常会遇到一些下拉框,如果我们基于Webdriver操作的话就需要click两次,而且很容易出现问题,实际上Selenium给我们提供了专门的Select(下拉框处理模块)。
#应用select 模块必须为select标签编写的下拉框
引入方法: from selenium.webdriver.support.select import Select
# s = driver.find_element_by_xpath('//select[1]')
# Select(s).select_by_index(3) #四川
# Select(s).select_by_value('3')#北京
#当元素中还含有元素的话,就可以在find_element来缩小范围 (self.el)
#is_select 用法
print(driver.find_element_by_css_selector('#on').is_selected())
print(driver.find_element_by_css_selector('#off').is_selected())
五、窗口截图
# 截图 就用这一个
# driver.get_screenshot_as_file('demo1.png')
六、关闭窗口
# 退出并关闭所有页面驱动
# driver.quit()
# 当开启多个时,关闭当前页面
# driver.close()
Selenium - Switch & Select Api的更多相关文章
- selenium处理select标签的下拉框
有时候我们会碰到<select></select>标签的下拉框.直接点击下拉框中的选项不一定可行.Selenium专门提供了Select类来处理下拉框. <select ...
- Python3 Selenium自动化-select下拉框
Python3 Selenium自动化-select下拉框 selenium介绍select下拉框相关的操作方法:
- minio select api 试用
对于minio 我们可以使用基于sql 的对象内容查询,特别适合进行特定文件内容的获取,强大方便. 以下是一个简单的试用 环境准备 集成了prometheus docker-compose 文件 ...
- Selenium: 利用select模块操作下拉框
在利用selenium进行UI自动化测试过程中,经常会遇到下拉框选项,这篇博客,就介绍下如何利用selenium的Select模块来对标准select下拉框进行操作... 首先导入Select模块: ...
- 《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程)
1.简介 在实际自动化测试过程中,我们也避免不了会遇到下拉选择的测试,因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助. 2.select 下拉框 2.1Select ...
- Python Selenium 之常用API
Selenium WebDriver下提供许多用来与浏览器.元素.鼠标.键盘.弹框.下拉菜单和列表的交互和设置方法.这些是计算机模拟人工进行自动化测试所必要依赖的方法.下面将用列表的方式总结出常用的A ...
- Go语言教程5 if switch select
首先您需要有php或是c的基础. 否则可能看不明白 方法如下 if 表达式{ //需要注意的是 没有括号. 没错. 没有括号 比如 if 1>2 {}else{} } else { } s ...
- selenium常用的API
打开浏览器 driver.get("http://www.baidu.com") 最大化浏览器 driver.maximize_window() 关闭浏览器 driver.quit ...
- selenium+Python(select定位)
1.Select元素 1.打开百度-设置-搜索设置界面,如下图所示 2.箭头所指位置,就是 select 选项框,打开页面元素定位,下方红色框框区域,可以看到 select 标签属性: <sel ...
随机推荐
- (转)Sql Server 快速查看表结构(表描述及字段说明)
--表描述 SELECT tbs.name 表名,ds.value 描述 FROM sys.extended_properties ds LEFT JOIN sysobjects tbs ON ds. ...
- easyui 设置一加载,搜索框立即弹出的效果
1.部分html文件 <div id="searchForm" region="north" title="标的查询" collaps ...
- VB--"." 和 "!" ?
在做学生信息管理系统的时候,遇到了一条代码. txtName.Text = mrc!student_Name txtResult.Text = mrc!result 代码本身理解没有问题,给文本框添加 ...
- T-sql 根据bak文件恢复新建数据库
利用bak文件恢复新建数据库: 1:利用sqlserver界面管理工具恢复,在操作2005以上的版本可以讲界面的操作过程生成sql语句(本人在此徘徊了好久,得一位博友提醒才恍然大悟); 2:利用sql ...
- 数学图形(2.17)pappus螺线
帕波斯(Pappus of Alexandria) 生于亚历山大,活跃于公元300—350前后.该螺线是一种绕在圆锥上的曲线. #http://www.mathcurve.com/courbes3d/ ...
- Dedecms <= V5.6 Final模板执行漏洞
漏洞版本: Dedecms V5.6 Final 漏洞描述: Dedecms V5.6 Final版本中的各个文件存在一系列问题,经过精心构造的含有恶意代表的模板内容可以通过用户后台的上传附件的功能上 ...
- RS中的关系引用不明确以及行列自动添加了追溯
问题1:由于在FM模型的物理层是自己新建了查询主题,查询主题采用对已经存在的表进行sql处理然后重命名, 使用的是sql类型的数据源,sql类型设置的查询类型是默认的cognos类型,而语法是本地的结 ...
- Makefile 编译静态库
CC = gcc AR = ar FLAGS = -Wall -lpthread CLOUD = cloud_server OBJ += cloud_server.o LIB = libccloud. ...
- C#基础视频教程7.2 如何编写简单游戏
前面一小节我们实现了简单的碰撞检测,但是实际上游戏的对象并不是一个标准的矩形(小鸟是一个不规则的物体,其实碰撞的管道也是不规则物体),所以如果真的要做的比较完美,我们自己要写一个方法,能够导入一个图像 ...
- matlab练习程序(三阶张量T-QR分解)
转自:http://www.cnblogs.com/tiandsp/archive/2012/10/31/2747971.html 这里所谓的张量和黎曼那里的张量是不一样的,那个张量更多的用在物理上, ...