框架:是一组成熟的,用于解决某类问题程序组件,基于该组件构建,定制符合需求的应用系统
框架特点:可复用,提供一组接口,按照流程进行开发
特点:1)代码的复用,"不重复制造车轮",提高开发效率
2)性能稳定,可扩展
3)使用框架能够更专注于业务逻辑,加快开发速度
selenium IDE FireFox
selenium RC
selenium Webdriver
selenium Grid
selenium RC 与 selenium webdriver
1)selenium RC C/S结构,不能直接操作浏览器,效率较低
2)selenium RC 不支持无头浏览器(运行在内存中,不依赖于拥有实际页面的浏览器)
3)selenium RC 面向过程,selenium webdriver 面向对象
4)selenium RC 不支持移动端自动化测试
web页面测试基本流程
步骤1:创建浏览器对象,与某一特定浏览器产生连接
步骤2:获取指定页面
步骤3:操作页面元素:;输入框,链接
步骤4:关闭页面
创建浏览器对象
1)模块导入 from selenium import webdriver
2)创建浏览器对象 brower = webdriver.FireFox()
获取指定页面
1)获取页面 brower.get(url)
关闭页面
1)关闭页面 brower.close() #关闭当前页面标签/窗口 brower.quit() #关闭所有标签/窗口
常见的页面操作方法
1)设置/获取页面大小
maximize_window() #页面最大化
get_window_size() #获取浏览器尺寸
set_window_size() #设置浏览器尺寸
获取/设置浏览器位置
get_window_position() #获取浏览器位置
set_window_position() #设置浏览器位置
注:显示器以左上角为(0,0),所有的位置操作都是相对于显示器左上角展开的位移操作,单位是像素
页面请求
refresh() #刷新页面操作
back() #回退到之前的页面
forward() #前进到之后的页面
获取页面信息,webdriver中描述页面信息的内容:
current_url #获取当前页面url
title #获取当前页面标题,对应HTML文件中title标签中的内容
注: url需要包含协议信息
selenium 元素定位方法
元素定位方法的分类(调用方法):
driver.find_element_by_xxx(value)
用于定位的元素类型
id | id定位 |
name | name属性值定位 |
class name | 伪类名定位 |
tag name | 标签名定位 |
link text | 链接文本定位 |
partial link text | 部分链接文本 |
xpath | xpath路径表达式 |
css selector | css选择器定位 |
time sleep() | 停留时间 |
send keys() | 输入内容 |
click() | 点击 |