一、多表单切换  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. Could not find com.android.support.constraint:constraint-layout的问题解决

    这几天使用android studio的各种坑之一: Error:Could not find com.android.support.constraint:constraint-layout:1.0 ...

  2. Android 4.4 KitKat升级率已经接近18%(2014-07-09 07:29)

    腾讯数码讯(编 译:张秀梅)按照惯例, 每个月的第一个星期的星期一谷歌都会发布最新一期Android版本分布图.从去年十月末谷歌发布Android 4.4 KitKat以来,截止到目前为止Androi ...

  3. iOS:切换视图时,反向传递数据方法二:代理

    代理: 1.发送信息的控制器设置一个代理,并自定义一个代理的方法,用来传递数据 2.接受信息的控制器遵循发送信息的控制器的协议 3.接受信息的控制器设置发送信息的控制器的代理为自己self 4.接受信 ...

  4. qt study 泛型和容器

    所谓泛型(generic) 能够像操作基本类型一样轻松操作对象的类和函数. qt容器类就是泛型类,基于模板的泛型类. 重载运算符overloaed operator, 托管容器 managed con ...

  5. hadoop中典型Writable类详解

    本文地址:http://www.cnblogs.com/archimedes/p/hadoop-writable.html,转载请注明源地址. Hadoop将很多Writable类归入org.apac ...

  6. mysql创建、删除用户与授权(linux測试)

    注:我的执行环境是SUSE Linux + mysql5.6 一.创建用户:  命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';  ...

  7. Kettle中根据一个输入行派生出多个输出行

    依然在北京,早上停电了,整个人感觉对不好了,接下来就说一下在使用ETL工具kettle做数据校验的时候遇到的一些问题,一级解决方案. 1:数据校验效果图下图: 原始表数据(需要校验的表数据) 对上表数 ...

  8. [Functional Programming] Write a simple version of Maybe

    Maybe has two types: Just / Nothing. Just() will just return the value that passed in. Nothing retur ...

  9. JQuery中attr属性和jQuery.data()学习笔记

    用html直接data-key来存放,key必须全部小写. <div data-mydata="123"></div> consoloe.log($(&qu ...

  10. 使用nmonchart把.nmon文件转换成html

    转载:https://blog.csdn.net/zd470015321/article/details/68923280 我的环境 :centos6.6 下载地址 nmon: http://nmon ...