总结Selenium自动化测试方法(四)WebDriver常用的操作
四、WebDriver常用的操作
1、控制浏览器操作
#控制浏览器的大小
self.driver.set_window_size(480,800)
#控制浏览器返回
self.driver.back()
#控制浏览器前进到下个页面
self.driver.forward()
#刷新当前页面
self.driver.refresh()
2、控制页面元素的简单操作
#清除文本操作
self.driver.find_element_by_xpath("/div/div[2]/div/div/div").clear()
#模拟键盘输入值
self.driver.find_element_by_xpath("/div/div[2]/div/div/div").send_keys(“urstest@163.com”)
#点击元素
self.driver.find_element_by_xpath("/div/div[2]/div/div/div").click()
#提交表单
self.driver.find_element_by_xpath("/div/div[2]/div/div/div").submit()
#返回输入框尺寸
size=self.driver.find_element_by_xpath("/div/div[2]/div/div/div").size
print(size)
#返回文本内容
text=self.driver.find_element_by_xpath("/div/div[2]/div/div/div").text
print(text)
#返回元素的属性值
attribute1=self.driver.find_element_by_xpath("/div/div[2]/div/div/div").get_attribute(‘id’)
print(attribute1)
attribute2=self.driver.find_element_by_xpath("/div/div[2]/div/div/div").get_attribute(‘name’)
print(attribute2)
attribute3=self.driver.find_element_by_xpath("/div/div[2]/div/div/div").get_attribute(‘type’)
print(attribute3)
#返回元素的结果是否可见,返回结果是True或是False
result=self.driver.find_element_by_xpath("/div/div[2]/div/div/div").is_displayed()
print(result)
#返回页面标题
title=self.driver.title
print(title)
#返回页面url
url=self.driver.current_url
print(url)
#上传文件,上传文件相当于给元素传值,可以用send_keys()函数
self.driver.find_element_by_xpath("/div/div[2]/div/div/div").send_keys(‘D:\\upload_file.txt’)
3、鼠标操作
首先要导入鼠标操作的Actionchains类
#引入Actionchains类
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
然后就可以用下面的这些函数进行鼠标的操作了
#左键用上面讲到的click()函数就可以了
#右键
right_click= self.driver.find_element_by_xpath("/div/div[2]/div/div/div")
ActionChains(driver).context_click(right_click).perform()
#双击
double_click= self.driver.find_element_by_xpath("/div/div[2]/div/div/div")
ActionChains(driver).double_click(double_click).perform()
#拖拽
#拖拽的原位置
element= self.driver.find_element_by_xpath("/div/div[2]/div/div/div")
#拖拽的目标位置
target= self.driver.find_element_by_xpath("/div/div[2]/div/div/div[2]")
#执行拖拽
ActionChains(driver).drag_and_drop(element,target).perform()
4、键盘操作
首先要导入键盘操作的Keys类
#引入Keys类
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
然后就可以用下面的这些函数进行键盘的操作了
#输入内容:用之前的send_keys()函数即可
#回删内容
text= self.driver.find_element_by_xpath("/div/div[2]/div/div/div")
text.send_keys(Keys.BACK_SPACE)
#输入空格及内容
text= self.driver.find_element_by_xpath("/div/div[2]/div/div/div")
text2=text.send_keys(Keys.SPACE)
text2.send_keys(u“就是啊”)
#全选内容ctrl+a
text= self.driver.find_element_by_xpath("/div/div[2]/div/div/div")
text.send_keys(Keys.CONTROL,’a’)
#剪切内容ctrl+x
text= self.driver.find_element_by_xpath("/div/div[2]/div/div/div")
text.send_keys(Keys.CONTROL,’x’)
#粘贴内容ctrl+v
text= self.driver.find_element_by_xpath("/div/div[2]/div/div/div")
text.send_keys(Keys.CONTROL,’v’)
#回车
text= self.driver.find_element_by_xpath("/div/div[2]/div/div/div")
text.send_keys(Keys.ENTER)
5、元素等待操作
①显示等待
原理:显式等待,就是明确的要等到某个元素的出现或者是某个元素的可点击等条件,等不到,就一直等,除非在规定的时间之内都没找到,那么就跳出Exception.(简而言之:就是直到元素出现才去操作,如果超时则报异常)
②隐式等待
原理:隐式等待,就是在创建driver时,为浏览器对象设置一个等待时间。这个方法是得不到某个元素就等待一段时间,直到拿到某个元素位置。
注意:在使用隐式等待的时候,实际上浏览器会在你自己设定的时间内不断的刷新页面去寻找我们需要的元素
③休眠方法sleep
需要导入sleep类
#引入sleep类
from selenium import webdriver
from time import sleep
time.sleep(3)
6、处理验证码(验证码是阻碍自动化测试的部分,所以要想办法绕开这个环节)
①注释掉验证码部分的代码
②设置一个万能验证码
③验证码的识别技术
④记录cookie,来跳过登录的部分
总结Selenium自动化测试方法(四)WebDriver常用的操作的更多相关文章
- 总结Selenium自动化测试方法(一)自动化测试基础
总结Selenium自动化测试方法 一.自动化测试基础 1.什么样的项目适合自动化测试 ①任务测试明确,不会频繁变动 ②每日构建后的测试验证 ③比较频繁的回归测试 ④软件系统界面稳定.变动少 ⑤需要在 ...
- 总结Selenium自动化测试方法(三)WebDriver定位元素方法
三.WebDriver定位元素 推荐使用的webdriver是firefox,因为他的firebug更能可以帮助定位页面元素使用 # create a new Firefox session cls. ...
- 【关于selenium自动化中,Webdriver的原理以及工作流程】
原文地址:https://www.cnblogs.com/imyalost/p/7242747.html#4109245 作者:老 张 1.关于Webdriver 设计模式:按照Server-Clie ...
- 总结Selenium自动化测试方法(六)常见的异常错误处理
六.常见的异常错误处理 NoSuchElementException: Message: Unable to locate element: {"method":"xpa ...
- 总结Selenium自动化测试方法(五)自动化测试框架
五.自动化测试框架 1.单元测试框架unittest class loginTests(unittest.TestCase): ①开始的初始化部分 @classmethod def setUpClas ...
- 总结Selenium自动化测试方法(二)测试环境搭建
(接上期内容) 二.测试环境搭建 1.安装python 现在python3.0比python2.0多了一些改进的功能(详见http://zhidao.baidu.com/link?url=3sT1g7 ...
- python webdriver 常用元素操作
1.新建实例 xx_driver = os.path.abspath(r"路径") os.environ["webdriver.xx.driver"] = xx ...
- python+selenium自动化软件测试(第2章):WebDriver API
2.1 操作元素基本方法 前言前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可 ...
- 【python+selenium的web自动化】- 元素的常用操作详解(二)
如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html 本篇主要内容:1.鼠标 ...
随机推荐
- 聊一聊js中的null、undefined与NaN
零.寒暄 翻翻自己的博客,上一篇竟然是六月26号的,说好的更新呢?回顾刚刚过去的这个七月,整天都是公司的入职培训加上自己的小论文,每天奋战到凌晨1点多,这是要挂的节奏啊!但是不论怎么说,自己的时间管理 ...
- javascript中继承(二)-----借用构造函数继承的个人理解
本人目录如下: 零.寒暄&回顾 一,借用构造函数 二.事件代理 三,call和apply的用法 四.总结 零.寒暄&回顾 上次博客跟大家分享了自己对原型链继承的理解,想看的同学欢迎猛击 ...
- Js高程笔记->引用类型
1 . Object 对象 2 . Array 对象 : 检测方法:ES5 : isArray 转换方法: toLocaleString , toString , val ...
- apple wwdc resource
1. every wwdc topic list http://asciiwwdc.com 2. wwdc video直接查看apple develop-> video 3. wwdc open ...
- Codeforces Round #204 (Div. 2)->C. Jeff and Rounding
C. Jeff and Rounding time limit per test 1 second memory limit per test 256 megabytes input standard ...
- iOS 面试题
1.Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答:不可以,可以实现多个接口:category是分类,,一般情况下分类 ...
- 停止使用循环 教你用underscore优雅的写代码
你一天(一周)内写了多少个循环了? var i; for(i = 0; i < someArray.length; i++) { var someThing = someArray[i]; ...
- 使用Rails 4.2+ 测试异步邮件系统
[导读]异步测试总是一个很大的问题,邮件发送测试更是让很多开发同学不知道从哪里入手.在新版的Rails里,这类测试在很大程度上被简化了. 以下为译文 在编写需要发送邮件的应用时,控制器是绝不能被阻塞的 ...
- jquery 中$.post获取MVC Controller中JsonResult返回包含LIst<Model>类型的子List<Model>的高级使用方法
比如JsonResult中返回return Json(models);的models结构如下: models返回含有四个集合的序列,每个集合的序列中又包含一个子集合序列“Child”. 问题是如果我们 ...
- asp.net跳转页面的三种方法比较
目前,对于学习asp.net的很多朋友来讲,实现跳转页面的方法还不是很了解.本文将为朋友们介绍利用asp.net跳转页面的三种方法,并对其之间的形式进行比较,希望能够对朋友们有所帮助. ASP.NET ...