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 ...
随机推荐
- [Gradle] Gradle 构建工具的未来
转载地址:http://www.infoq.com/cn/news/2011/04/xxb-maven-6-gradle Maven面临的挑战 软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你 ...
- 4)linux程序设计入门--时间概念
)程序设计入门--时间概念 前言:Linux下的时间概念 这一章我们学习Linux的时间表示和计算函数 时间的表示 时间的测量 计时器的使用 .时间表示 在程序当中,我们经常要输出系统当前的时间,比如 ...
- ICLR 2013 International Conference on Learning Representations深度学习论文papers
ICLR 2013 International Conference on Learning Representations May 02 - 04, 2013, Scottsdale, Arizon ...
- linux 网络设备驱动
linux 网络驱动 谨以此文纪念过往的岁月 一.前言在linux中网络驱动也是一个大头,如何去理解网络驱动是作为一个linux驱动工程师必备的技能.不过同样的设备,在不同人的手中会有不同的效果,其原 ...
- SQL VM上磁盘延迟高, 但Host和Storage Array上的延迟却很低的问题
按照下面的步骤, 问题解决. =========================== Per Microsoft DDK, Microsoft storport.sys maintains a dev ...
- [Functional Programming] Monad
Before we introduce what is Monad, first let's recap what is a pointed functor: A pointed functor is ...
- Scheme 4 Javaer-3.高阶函数
1.3 Formulating Abstractions with Higher-Order Procedures 教材有时候依照学生的基础.从0讲起:有时候给出一个大图,然后具体地逐一介绍. 本文 ...
- 流编辑器sed
sed与grep一样,都起源于老式的ed编辑器,因其是一个流编辑器(stream editor)而得名.与vi等编辑器不同,sed是一种非交互式编辑器(即用户不必参与编辑过程),它使用预先设定好的编辑 ...
- spring相关记录
1 国际化org.springframework.web.servlet.i18n.SessionLocaleResolver http://blog.csdn.net/kcai678/arti ...
- Guava ---- Ordering排序工具
使用Guava的排序工具类, 高速实现对象的单变量排序和多变量排序, 让你的开发效率爆炸... import com.google.common.collect.Lists; import com.g ...