UI自动化之特殊处理二(弹框\下拉框\选项\文件上传)
弹框\下拉框\选项\文件上传也是一些比较特殊的操作
目录
1、弹框
2、下拉框
3、选项
4、文件上传
1、弹框
弹框有三种形式,value为alert、confirm、prompt三种的弹框,第一个仅可点击确认,第二个可点击取消和确认,第三个可以输入内容再点击取消或者确认
alert:仅需要定位到alert上,然后再确认
m= driver.switch_to_alert()
m.accept()
confirm:定位到alert,点击取消或者确认
m= driver.switch_to_alert()
m.accept() #确认
m.dismiss() #取消,取消和确认选一种
prompt:定位到alert,输入内容,再取消或者确认
m= driver.switch_to_alert()
m.send_keys("qq")
m.accept() #确认
m.dismiss() #取消,取消和确认选一种
2、下拉框
可通过一次定位和二次定位2种方法来定位
一次定位:
driver.find_element_by_xpath(".//[@id='nr']/option[3]").click()
二次定位:
第一种,先定位到下拉框,再用xpath定位到下拉框的值
driver.find_element_by_id("nr").find_element_by_xpath("//option[@value='50']").click()
第二种:用select模块二次定位
from selenium.webdriver.support.select import Select
'''通过索引'''
m = driver.find_element_by_id("nr")
Select(m).select_by_index(0)
'''通过value'''
m = driver.find_element_by_id("nr")
Select(m).select_by_value("20")
'''通过text'''
m = driver.find_element_by_id("nr")
Select(m).select_by_visible_text("每页显示 50 条")
3、选项
选项分为单选框和复选框
001、单选框:type=radio
直接找到,然后点击
driver.find_element_by_xpath(".//*[@type='radio']").click()
002、复选框:type=checkbox
想要全部点击,需要用find_elements方法,然后再循环点击
checkboxs=driver.find_elements_by_xpath(".//*[@type='checkbox']")
for i in checkboxs:
i.click()
003、是否选中
is_selected(),为True时,为选中,为False,没选中,用来测试点击的结果
driver.find_element_by_xpath(".//*[@type='radio']").click()
m=driver.find_element_by_xpath(".//*[@type='radio']").is_selected()
print m
4、文件上传
文件上传分为2种,一种type为file,一种不为file
001、type=file的,直接使用send_keys()
driver.find_element_by_id("qq").send_keys(r"d:\qq.png")
002、type非file的,借助第三方模块
第一步:安装Sendkeys模块
pip install SendKeys
第二步:应用
import SendKeys #SendKeys方法输入内容
SendKeys.SendKeys(r"文件路径")#发送文件地址
time.sleep(1)
SendKeys.SendKeys("{ENTER}")#发送回车键
time.sleep(1)
#SendKeys.SendKeys("{ENTER}")#如果是电脑搜索输入法,需要多一次回车
UI自动化之特殊处理二(弹框\下拉框\选项\文件上传)的更多相关文章
- JavaScript---网络编程(11)--DHTML技术演示(4)-单选框/下拉菜单/添加文件
本节讲述单选框/下拉菜单/添加文件,综合css,html和JavaScript. 单选框: 实现的功能是:(类似平时的性格测试) 先隐藏一部分页面,然后通过点击单选框来显示. 再通过选项的选择-(每个 ...
- easyui combobox点击输入框弹出下拉框
由于easyui combobox需要点击下拉箭头才能下拉,不能像select标签那样点击输入框就下拉,所以觉得不太方便,查看了一下,combobox弹出框是一个div,原本想在他的输入框的点击事件中 ...
- JQuery autocomplete获得焦点触发弹出下拉框
需求:autocomplete控件,当点击获得焦点的时候也要弹出下拉列表(autocomplete默认是输入之后才会跟随出下拉列表),下面直接贴代码. js代码: $("#customerN ...
- ActionBar点击弹出下拉框操作
首先: getActionBar().setDisplayShowTitleEnabled(false); ActionBar.LayoutParams lp = new ActionBar.Layo ...
- asp.net html 单击按钮弹出下拉框效果
1.说明 需要引用jquery.js文件,我的页面是在asp.net MVC4 添加的web窗体,其他不多说 直接看代码 2.代码 <%@ Page Language="C#" ...
- CSS实现鼠标移入弹出下拉框
前言 最近比较沉迷CSS,所以我现在来做个鼠标的交互效果 HTML <ul> <li>测试</li> <li>测试</li> <li ...
- [二十]SpringBoot 之 (多)文件上传
(1)新建maven Java project 新建一个名称为spring-boot-fileuploadmaven java项目 (2)在pom.xml加入相应依赖: <project xml ...
- Selenium:利用select模块处理下拉框
在利用selenium进行UI自动化测试过程中,经常会遇到下拉框选项,这篇博客,就介绍下如何利用selenium的Select模块来对标准select下拉框进行操作... 首先导入Select模块: ...
- Selenium: 利用select模块操作下拉框
在利用selenium进行UI自动化测试过程中,经常会遇到下拉框选项,这篇博客,就介绍下如何利用selenium的Select模块来对标准select下拉框进行操作... 首先导入Select模块: ...
随机推荐
- linux NFS 实例
为了证明是 Allentunsgroup 组起的作用而非用户 [root@NFS_Client ~]# useradd scott1 [root@NFS_Client ~]# passwd scott ...
- Qt项目管理文件(.pro)及其作用详解
http://c.biancheng.net/view/1819.html 在 Qt Creator 中新建一个 Widget Application 项目 samp2_1,在选择窗口基类的页面选择 ...
- react:如何创建一个新项目
如何用react创建一个新的项目 我们打开react官网:https://reactjs.org/docs/create-a-new-react-app.html 看到以下命令 npx create- ...
- 十、S3C2440 开发资源
10.1 S3C2440 内部资源 1.2V 内核供电, 1.8V/2.5V/3.3V 储存器供电, 3.3V 外部 I/O 供电,具备 16KB 的指令缓存和 16KB 的数据缓存和 MMU 的微处 ...
- layui 动态添加 表格数据
静态表格: <table class="layui-table" id="table" lay-filter="table"> ...
- css3-文字与字体
1. 给文字添加阴影---text-shadow 语法: text-shadow: X-Offset Y-Offset blur color; X-Offset:表示阴影的水平偏移距离,其值为正值时阴 ...
- hashcode 和 equals
https://www.cnblogs.com/Qian123/p/5703507.html#_label0 hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值 详细了解 ...
- 【LuoguP3747】[六省联考2017] 相逢是问候
题目链接 题意 给定一个长度为 n 的序列 a , 给定一个正整数 c 每次修改操作是把一段区间内的数 \(x_i\) 修改为 \(c^{x_i}\) 询问区间和模 p 的结果 Sol 修改是把一个数 ...
- 使用VisualStudio 开发Arduino
Arduino IDE界面简洁,整体功能还算完善,相比其他编译器明显的不足就是不能进行硬件调试,再就是没有代码提示功能,文件关系不清晰.头文件打开不方便. VisualStudio作为时下最为流行的W ...
- 【PowerOJ1755&网络流24题】深海机器人问题(费用流)
题意: 思路: [问题分析] 最大费用最大流问题. [建模方法] 把网格中每个位置抽象成网络中一个节点,建立附加源S汇T. 1.对于每个顶点i,j为i东边或南边相邻的一个节点,连接节点i与节点j一条容 ...