selenium学习总结
selenium主要用来做web自动化,分1.0和2.0两个版本,1.0包括selenium IDE、selenium Grid、selenium Remote Control,2.0在1.0的基础上增加了webdriver
1)selenium IDE 是火狐的一个插件,可以在火狐中录制、回放脚本,并且形成各种语言的脚本文件,在学习中使用的是catalon插件

2)selenium Grid 做测试的并行处理,目前学习中暂未过多接触。
3)selenium RC 用例的编写及运行,是在浏览器中运行js应用,使用浏览器内置的js翻译器来翻译和执行selense命令(selenium的命令集合)
4)selenium webdriver是selenium RC的替代产品,是通过支持原生浏览器驱动来控制浏览器
- 需要把各个浏览器的驱动文件放至Python根目录
- pip install selenium
selenium webdriver
1.元素定位
使用webdriver主要是通过定位页面元素对其进行操作,因此元素的定位是UI自动化测试的重中之重。webdriver常用的元素定位方法有以下:
1)id driver.find_element_by_id('username')
2)name driver.find_element_by_name('kw')
3)xpath driver.find_element_by_xpath("//button[@onclick=\"doLogin('null')\"]")
- /当前节点 //任意节点
- @属性名=属性值 text()='' test前无@
- 组合 driver.find_element_by_xpath("//button[@onclick=' ' and @type=' ']")
- 下标 (//a[text()='新闻'])[2] (//a[text()='新闻'])查出多个,用【2】定位
- . 当前节点 ..上一个节点
2.常用API
- 打开关闭最大化窗口
driver = webdriver.Chrome()
driver.get('http://172.16.1.222:8080/WoniuSales/')
driver.maximize_window()
driver.minimize_window()
driver.close() #关闭窗口
driver.quit() #关闭浏览器
- 前进、后退
driver.back() #后退
driver.forward() #前进
- 鼠标操作
鼠标操作包含在ActionChains中,通过perform()执行操作
from selenium.webdriver.common.action_chains import ActionChains
ActionChains(driver).contex_click(element).perform #element处右击
double_click() #双击 drag_and_drop() #拖动 move_to_element() #悬停
- 键盘操作
from selenium.webdriver.common.keys import Keys
driver.find_element_by_id("kw").send_keys(Keys.CONTROLL,'a') #ctr+A
Keys.BACK_SPACE #删除 Keys.SPACE #空格 。。。。。
- 滚动条
滚动条不属于页面元素,可通过JS控制
scroll_bar = "var bar = document.documentElement.scrollTop = 100000" #scrollTop =0,滚动条在最上方,数值控制位置
driver.execute_script(scroll_bar)
- 元素操作
driver.find_element_by_id('username').click() #点击
driver.find_element_by_id('username').clear() #清除
driver.find_element_by_id('username').send_keys("内容") #模拟键盘输入
driver.find_element_by_id('username').text #获取元素的文本
driver.find_element_by_id('username').is_displayed() #是判断存在的元素是否显示,而不是元素是否存在!
- 设置等待时间
①强制等待
from time import sleep
sleep(3) #执行到这一步时强制等待3秒
②隐式等待
driver.implicitly_wait(30) #相当于为所有的元素设置了一个全局的等待时间,如果找到了就不等待,没找到就等待,30秒还没找打就报错
③显式等待
from selenium.webdriver.support.ui import WebDriverWait
WebDriverWait(driver,timeout,frequency) #每隔frequency查找一次,总共timeout秒,找到就继续,没找到等下一个间隔。
- alert/confirm/prompt
- 多窗口
handle = driver.current_window_handle
driver.switch_to().window(handle)
- 添加cookie,可绕过登录
cookie是网站为了辨别用户身份、进行session追踪而存储在用户本地终端上的数据,也可理解为浏览器缓存。

driver = webdriver.Chrome()
driver.get("http://172.16.1.222:8080/WoniuSales/")
driver.add_cookie({'name':'username','value':'admin'})
driver.add_cookie({'name':'password','value':'admin'})
driver.get("http://172.16.1.222:8080/WoniuSales/") #不点登录击登录可以直接进入登录后的界面
selenium学习总结的更多相关文章
- 【转】selenium学习路线
selenium学习路线 配置你的测试环境,真对你所学习语言,来配置你相应的selenium 测试环境.selenium 好比定义的语义---“问好”,假如你使用的是中文,为了表术问好,你的写法是“你 ...
- Selenium 学习笔记(一)
selenium 学习整理 初学者,如果有不当得地方请指出,非常感谢. 准备事项: 1. Python 安装包 安装Python,并勾选添加环境变量. 安装完成后,打开dos窗口,输入python,看 ...
- selenium 学习之路开始了,一遍搬一遍理解学习,加油!!!
selenium 学习之路开始了,一遍搬一遍理解学习,加油!!!
- Selenium学习第二天,了解Selenium工作模式与学习Selenium需要具备的知识与工具。
Selenium学习网站: 1.http://www.ltesting.net/ceshi/open/kygncsgj/selenium/2014/0408/207237.html——好像是对API的 ...
- 【python+selenium学习】Python常见错误之:IndentationError: unexpected indent
初入python+selenium学习之路,总会遇到这样那样的问题.IndentationError: unexpected indent,这个坑我已经踏进数次了,索性记录下来.都知道Python对代 ...
- selenium 学习笔记 ---新手学习记录(1) 问题总结
说明:每次学习各种语言时,环境搭建访问国外网址最头疼了,现在只要是工具下载好放到自己网盘,可以随时用. 1.首先工具准备,selenium需要用到的 下载地址 访问密码 ff8f 2.我选择的语言时j ...
- Selenium学习资源和网站
用于收集常用的网站和学习资源: 文章: Selenium私房菜系列--总章 WEB 自动化测试工具 Selenium 简介及其应用 Selenium教程 和我一起学 Selenium WebDrive ...
- 【工具篇】Selenium 学习实践(一)环境搭建
一.环境搭建 (1)初学者最佳环境: Python 2.7 + Selenium 2+ Firefox 46 (2)喜欢尝新的环境: Python 3.6 + Selenium 3+ Firefox ...
- selenium学习一
chrome版本和chromedriver的对应关系 chromedriver版本 支持的Chrome版本 v2.40 v66-68 v2.39 v66-68 v2.38 v65-67 v2.37 v ...
- selenium学习笔记(简单的元素定位)
收拾一下心情开始新的一周工作 继续是selenium的学习.配置成功后 由于所有操作都是建立在页面元素基础上的.所以下来就是学习定位元素 首先是基础的定位.就使用博客园首页搜索框为例: 下面是代码: ...
随机推荐
- cmd/bat 判断日期,并删除文件
代码来自互联网. ---------------------------------------- @echo off set a=2018-07-9 set ndate=%date:~,10%set ...
- Python模块入门(一)
一.模块介绍 模块就是一系列功能的集合体 模块有三种来源: 1.内置模块:python内提供的模块 2.第三方模块:由第三方提供的模块 3.自定义模块:自行定义的模块 模块的格式: 1.使用pytho ...
- 微信小程序电商实战-首页(上)
嗨,大家好!经过近两周的精心准备终于开始微信小程序电商实战之路喽.那么最终会做成什么样呢?当然可以肯定不会只做一个静态demo哦,先把我们小程序电商实战的整体架构发出来晒一下,请看下图: 架构图. ...
- CSS基础必备盒模型及清除浮动
盒模型 盒模型是有两种标准的,一个是标准模型,一个是IE模型. css如何设置两种模型 这里用到了CSS3 的属性 box-sizing /* 标准模型 */ box-sizing:content-b ...
- eclipse 中 添加 tomcat后,启动访问时出现404
1.切换到 server view. 2.双击出问题的 Server,出现如下页面. 3.选中Server,右键,点击选项卡的 Publish,就能进行编辑. 4.Server path 选中第二项: ...
- sharepoint2010的几个类型字段赋值和取值的方法
1.日期类型查询,需要转换,方法如下: //转换时间 string startdate = SPUtility.CreateISO8601DateTimeFromSystemDateTime(Date ...
- 笨办法学Python(十)
习题 10: 那是什么? 在习题 9 中我你接触了一些新东西.我让你看到两种让字符串扩展到多行的方法.第一种方法是在月份之间用 \n (back-slash n )隔开.这两个字符的作用是在该位置上放 ...
- Python基本数据类型(一)
一.int的函数说明(部分函数Python2特有,Python3已删除,部分函数Python3新增:) class int(object): """ int(x=0) - ...
- WINCC runtime连接SIMOTION simulator SIMOSIM
测试使用的软件版本 TIA Portal V14sp1 Windows7 sp1 (professional) Scout 5.1(integrated in TIA 集成项目) VMware wor ...
- Invalid MyEclipse License - Discontinuing this MyEclipse operation. 出现这个错误怎么改正?
Invalid MyEclipse License - Discontinuing this MyEclipse operation这句话的意思是无效的许可证-停用此MyEclipse操作入门就是你的 ...