弹框\下拉框\选项\文件上传也是一些比较特殊的操作

目录

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自动化之特殊处理二(弹框\下拉框\选项\文件上传)的更多相关文章

  1. JavaScript---网络编程(11)--DHTML技术演示(4)-单选框/下拉菜单/添加文件

    本节讲述单选框/下拉菜单/添加文件,综合css,html和JavaScript. 单选框: 实现的功能是:(类似平时的性格测试) 先隐藏一部分页面,然后通过点击单选框来显示. 再通过选项的选择-(每个 ...

  2. easyui combobox点击输入框弹出下拉框

    由于easyui combobox需要点击下拉箭头才能下拉,不能像select标签那样点击输入框就下拉,所以觉得不太方便,查看了一下,combobox弹出框是一个div,原本想在他的输入框的点击事件中 ...

  3. JQuery autocomplete获得焦点触发弹出下拉框

    需求:autocomplete控件,当点击获得焦点的时候也要弹出下拉列表(autocomplete默认是输入之后才会跟随出下拉列表),下面直接贴代码. js代码: $("#customerN ...

  4. ActionBar点击弹出下拉框操作

    首先: getActionBar().setDisplayShowTitleEnabled(false); ActionBar.LayoutParams lp = new ActionBar.Layo ...

  5. asp.net html 单击按钮弹出下拉框效果

    1.说明 需要引用jquery.js文件,我的页面是在asp.net MVC4 添加的web窗体,其他不多说 直接看代码 2.代码 <%@ Page Language="C#" ...

  6. CSS实现鼠标移入弹出下拉框

    前言 最近比较沉迷CSS,所以我现在来做个鼠标的交互效果 HTML <ul> <li>测试</li> <li>测试</li> <li ...

  7. [二十]SpringBoot 之 (多)文件上传

    (1)新建maven Java project 新建一个名称为spring-boot-fileuploadmaven java项目 (2)在pom.xml加入相应依赖: <project xml ...

  8. Selenium:利用select模块处理下拉框

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

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

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

随机推荐

  1. 2019全国大学生数学建模竞赛(高教社杯)A题题解

    文件下载:https://www.lanzous.com/i6x5iif 问题一 整体过程: 0x01. 首先,需要确定燃油进入和喷出的间歇性工作过程的时间关系.考虑使用决策变量对一段时间内燃油进入和 ...

  2. 使用SQL语法来查询Elasticsearch:Elasticsearch-SQL插件

    简介 Elasticsearch-SQL是Elasticsearch的一个插件,它可以让我们通过类似SQL的方式对Elasticsearch中的数据进行查询.项目地址是:https://github. ...

  3. Vue的渐进式理解(笔记)

    在我看来,渐进式代表的含义是:主张最少. 每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式. 比如说,Angu ...

  4. vue项目1-pizza点餐系统11-设计menu页面

    菜单的页面设计是基于bootstrap实现的,主要用到的是table标签,其中获取data数据用到遍历. <template> <div class=""> ...

  5. git初始化第一次拉取线上操作

    git: 所有的filename都代表文件名称 一次:git clone 地址    第一步:更新 git pull   第二步:查看修改状态 git status   第三步:根据修改状态查看需要添 ...

  6. pandas、matplotlib、Numpy模块的简单学习

    目录 一.pandas模块 二.matplotlib模块 1.条形图 2. 直方图 3.折线图 4.散点图+直线图 三.numpy 一.pandas模块 pandas是BSD许可的开源库,为Pytho ...

  7. LeetCode--008--字符串转换整数 (atoi)(python)

    示例 1: 输入: "42"输出: 42示例 2: 输入: " -42"输出: -42解释: 第一个非空白字符为 '-', 它是一个负号.  我们尽可能将负号与 ...

  8. Vue 基于node npm & vue-cli & element UI创建vue单页应用

    基于node npm & vue-cli & element UI创建vue单页应用 开发环境   Win 10   node-v10.15.3-x64.msi 下载地址: https ...

  9. 用设计模式来替代if-else

    前言 物流行业中,通常会涉及到EDI报文(XML格式文件)传输和回执接收,每发送一份EDI报文,后续都会收到与之关联的回执(标识该数据在第三方系统中的流转状态).这里枚举几种回执类型:MT1101.M ...

  10. PHP入门培训教程 PHP 数据类型

    PHP 支持八种原始类型(type),下面兄弟连PHP培训 小编来给大家列出:. 四种标量类型: string(字符串) integer(整型) float(浮点型,也作 double ) boole ...