一、多表单切换  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的更多相关文章

  1. selenium处理select标签的下拉框

    有时候我们会碰到<select></select>标签的下拉框.直接点击下拉框中的选项不一定可行.Selenium专门提供了Select类来处理下拉框. <select  ...

  2. Python3 Selenium自动化-select下拉框

    Python3 Selenium自动化-select下拉框 selenium介绍select下拉框相关的操作方法:

  3. minio select api 试用

    对于minio 我们可以使用基于sql 的对象内容查询,特别适合进行特定文件内容的获取,强大方便. 以下是一个简单的试用 环境准备 集成了prometheus docker-compose 文件   ...

  4. Selenium: 利用select模块操作下拉框

    在利用selenium进行UI自动化测试过程中,经常会遇到下拉框选项,这篇博客,就介绍下如何利用selenium的Select模块来对标准select下拉框进行操作... 首先导入Select模块: ...

  5. 《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程)

    1.简介 在实际自动化测试过程中,我们也避免不了会遇到下拉选择的测试,因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助. 2.select 下拉框 2.1Select ...

  6. Python Selenium 之常用API

    Selenium WebDriver下提供许多用来与浏览器.元素.鼠标.键盘.弹框.下拉菜单和列表的交互和设置方法.这些是计算机模拟人工进行自动化测试所必要依赖的方法.下面将用列表的方式总结出常用的A ...

  7. Go语言教程5 if switch select

    首先您需要有php或是c的基础. 否则可能看不明白 方法如下 if 表达式{ //需要注意的是  没有括号. 没错. 没有括号 比如  if  1>2 {}else{} } else { } s ...

  8. selenium常用的API

    打开浏览器 driver.get("http://www.baidu.com") 最大化浏览器 driver.maximize_window() 关闭浏览器 driver.quit ...

  9. selenium+Python(select定位)

    1.Select元素 1.打开百度-设置-搜索设置界面,如下图所示 2.箭头所指位置,就是 select 选项框,打开页面元素定位,下方红色框框区域,可以看到 select 标签属性: <sel ...

随机推荐

  1. C# 弹出USB外接硬盘(U盘)

    最近一个项目需要通过代码来弹出USB外接硬盘设备,经过google找到了下面这个类库: http://www.codeproject.com/Articles/13530/Eject-USB-disk ...

  2. OpenCV学习(6) 文件和Mat之间的数据交换

          有时候为了便于调试算法,我们需要从文本文件或二进制文件中读取数据,并把数据放到相应的矩阵中去.我们通常可以通过下面的函数实现.   1.从二进制文件中读取数据.      新建一个txt文 ...

  3. android 模拟器无法ping通主机

    很多时候我们通过adb 连接 android 模拟器调试网络程序,也许你能直接访问浏览器,浏览网站,但是却无法ping同局网的一个机器,比如: # ping www.sina.com         ...

  4. TensorFlow目标检测(object_detection)api使用

    https://github.com/tensorflow/models/tree/master/research/object_detection 深度学习目标检测模型全面综述:Faster R-C ...

  5. WinForm特效:同时让两个窗体有激活效果

    windows api,一个窗体激活的时候给另外一个发消息 using System; using System.Windows.Forms; using System.Runtime.Interop ...

  6. Android -- 使用主题配置文件,去掉程序启动界面的短暂黑屏

    关于黑屏 默认的情况下,程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初始化列表数据等. 去除步骤 1./res/values/styles.xml 在 Theme ...

  7. 解决Windows server 2012 R2 系统使用IIS8浏览Asp程序出现"An error occurred on the server when processing the URL"错误

    进入IIS并将ASP里的“Send Error To Browser”设置为True后点击Appley保存即可 原因是IIS里的Asp设置禁用上当错误信息发送给浏览器,只要启用即可 如果没有Asp选项 ...

  8. B/S学习总结

    经过5个月的学习,B/S学习的项目完毕了. 尽管项目完毕了,可是感觉自己还是差非常远.会的太少了.须要在项目中不断实战吧.以下分别对每一个项目进行总结. 牛腩新闻公布系统 简单介绍: 跟着视频里面的牛 ...

  9. JUC同步器框架AbstractQueuedSynchronizer源码图文分析

    JUC同步器框架AbstractQueuedSynchronizer源码图文分析 前提 Doug Lea大神在编写JUC(java.util.concurrent)包的时候引入了java.util.c ...

  10. 霍炬:再谈百度:KPI、无人机,以及一个必须给父母看的案例

    作者:霍炬.  原文链接:http://www.donews.com/idonews/article/8147.shtm 没想到我之前的一篇关于百度的文章引起了这么大的反馈. 非常多朋友称赞我写的好, ...