上一篇是元素的定位,那么定位元素的目的就是对元素进行操作,例如写入文本,点击按钮,拖动等等的操作

(1)简单元素操作

简单元素操作

find_element_by_id("kw").clear()                         #文本框清空
find_element_by_id("kw").send_keys("selenium") #文本框输入
find_element_by_id("button").click() #点击按钮操作

(2)webElement接口常用的操作:

WebElement类内容:获取元素属性、位置、是否可见、元素尺寸、元素截图等

from selenium.webdriver.remote import webelement
find_element_by_id("kw").get_attribute("type") #获取元素的属性值
find_element_by_id("submit").submit() #提交表单
flag = find_element_by_id("kw").is_displayed() #获取元素是否可见,值为True或False
size = find_element_by_id("kw").size #获取元素的大小

(3)鼠标操作:双击,鼠标右键,鼠标移动,拖动到元素上等操作

ActionChains(driver):存储鼠标的操作

perform():对指定的鼠标操作的执行

from selenium.webdriver.common.action_chains import ActionChains

right = driver.find_element_by_id("id")
ActionChains(driver).context_clcik("right").perform() #鼠标右键 left = driver.find_element_by_id("id")
ActionChains(driver).click_and_hold("left").perform() #鼠标左键 double = driver.find_element_by_id("id")
ActionChains(driver).double_clcik("double").perform() #鼠标双击 move = driver.find_element_by_id("id")
ActionChains(driver).move_to_element("move").perform() #鼠标移动到某个元素上 start = driver.find_element_by_id("id1")
end = driver.find_element_by_id("id2")
ActionChains(driver).drag_and_drop(start,end).perform() #鼠标拖动某个元素从start位置到end的位置

(4)键盘操作

键盘的操作基于send_keys()方法

from selenium.webdriver.common.Keys import Keys

driver.find_element_by_id("kw").send_keys(KEY.BACK_SPACE)          #删除键
driver.find_element_by_id("kw").send_keys(KEY.ENTER) #回车键
driver.find_element_by_id("kw").send_keys(KEY.SPACE) #空格键
driver.find_element_by_id("kw").send_keys(KEY.TAB) #制表符
driver.find_element_by_id("kw").send_keys(KEY.ESCAPE) #退出键
driver.find_element_by_id("kw").send_keys(KEY.CONTROL,'a') #全选
driver.find_element_by_id("kw").send_keys(KEY.CONTROL,'c') #复制
driver.find_element_by_id("kw").send_keys(KEY.CONTROL,'v') #粘贴
driver.find_element_by_id("kw").send_keys(KEY.CONTROL,'x') 剪切

selenium + python自动化测试unittest框架学习(三)webdriver元素操作(二)的更多相关文章

  1. selenium + python自动化测试unittest框架学习(二)

    1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py &g ...

  2. selenium + python自动化测试unittest框架学习(五)webdriver的二次封装

    因为webdriver的api方法很长,再加上大多数的定位方式是以xpath方式定位,更加让代码看起来超级长,为了使整体的代码看起来整洁,对webdriver进行封装,学习资料来源于虫师的<se ...

  3. selenium + python自动化测试unittest框架学习(一)selenium原理及应用

    unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...

  4. selenium + python自动化测试unittest框架学习(三)webdriver元素定位(一)

    1.Webdriver原理 webdirver是一款web自动化操作工具,为浏览器提供统一的webdriver接口,由client也就是我们的测试脚本提交请求,remote server浏览器进行响应 ...

  5. selenium + python自动化测试unittest框架学习(三)webdriver对页面其他控件操作(三)

    1.对话框,下拉框 (1)对话框的有两种,一种是iframe格式的,需要switch_to_iframe()进行定位,现在大部分的对话框是div格式的,这种格式的可以通过层级定位来定位元素,先定位对话 ...

  6. selenium + python自动化测试unittest框架学习(七)随机生成姓名

    在自动化测试过程中经常要测试到添加用户的操作,每次都要输入中文,原本是找了十几个中文写成了列表,然后从列表中随机取出填入用户名文本框中,随着测试的增加,发现同名的人搜索出来一大堆,最后在网上找了个随机 ...

  7. selenium + python自动化测试unittest框架学习(四)python导入模块及包知识点

    在写脚本的时候,发现导入某些模块,经常报错提示导入模块失败,这里来恶补下python导入模块的知识点. 1.模块导入时文件查找顺序 在脚本中,import xxx模块时的具体步骤: (1)新建一个mo ...

  8. selenium + python自动化测试unittest框架学习(六)分页

    接触的项目分页的形式是以下形式: 想要获取总页数后,遍历执行翻页的功能,但由于分页是以javascript方法实现的,每次点击确定按钮后,页面就回刷新,webelement元素过期无法遍历下一个进行翻 ...

  9. selenium + python 自动化测试环境搭建

    selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...

随机推荐

  1. 图解源码之java锁的获取和释放(AQS)篇

    以独占式不公平锁为例,通过5个线程争夺ReentrantLock的过程,图解ReentrantLock源码实现,了解显示锁的工作流程. 任何时刻拿到锁的只有一个线程,未拿到锁的线程会打包成节点(nod ...

  2. java模式之一------代理模式

    代理模式的概念:对其他对象提供一种代理以控制对这个对象的访问 代理模式的三种实现 (1)静态代理 静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类. e ...

  3. MySQL 数据类型总结及选取准则

    整数 整数有 TINYINT, SMALLINT, MEDIUMINT, INT 和 BIGINT 类型. 占用    8          ,  16            24,          ...

  4. Oracle数据库采用数据泵方式导入导出数据

    特别说明:Oralce的数据泵导入导出技术只能用在数据库服务器上,在只有客户端的机器上是无法使用数据泵技术的. 1.创建备份文件目录  mkdir d:\dmp 2.在Oralce中注册该目录,将目录 ...

  5. UNIX 网络编程笔记-CH2:TCP、UDP概貌

    好久不读不用又忘得差不多了,还是感叹Richard Stevens真是太刁,25年前第一版. "Tcp state diagram fixed new" by Scil100. L ...

  6. 精选10款HTML5手机模板

    1.Stroller | Mobile & Tablet Responsive Template 演示地址   购买地址 2.Ocean Mobile Template 演示地址   购买地址 ...

  7. Vue.js双向绑定原理

    Vue.js最核心的功能有两个,一个是响应式的数据绑定系统,另一个是组件系统.本文仅仅探究双向绑定是怎样实现的.先讲涉及的知识点,再用简化的代码实现一个简单的hello world示例. 一.访问器属 ...

  8. C语言指针数组(每个元素都是指针)

    转载:http://c.biancheng.net/cpp/html/3246.html 注意:数组指针的区别 如果一个数组中的所有元素保存的都是指针,那么我们就称它为指针数组.指针数组的定义形式一般 ...

  9. JDK自带工具native2ascii

    背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文件就需要进行Unicode重新编码.原因是java ...

  10. 关于Java Microbenchmark的一点记录

    大家知道单元测试对代码质量的保障作用已经没什么可说的了.Microbenchmark(微基准测试)也是保证代码质量的重要手段,也是容易忽略的,它用来衡量一些小的代码片段的性能指标,完善的Microbe ...