自动化测试:所有采用程序或代码来替代或辅助人工测试的行为称为自动化测试。
自动化测试好处:提升工作效率
主要应用环节:回归测试、兼容性测试、冒烟测试
适合自动化测试的项目特点:
1、项目需求稳定
2、项目周期较长
3、脚本可以重复使用
selenium:是由thoughtworks公司2004年左右开发的基于浏览器的自动化测试工具,提供了一整套的用于
web UI自动化的函数。
组成:webdriver:基于浏览器的自动化测试工具,提供了一整套的用于web UI自动化的函数。
selenium IDE:firefox浏览器的插件,可以录制脚本,selenium3.0已被淘汰。
selenium grid:用于管理和执行自动化测试用例(课程中讲jenkins)
selenium是一个C/S模式工具,脚本是C端,浏览器是S端,使用json wire协议。
搭建自动化测试环境:
1、安装python和编译器
2、安装浏览器,将浏览器的安装路径添加到path变量中。
3、将浏览器的驱动文件存放路径添加到path变量中
4、导入selenium库(pip install selenium)
离线导入:下载selenium tar包,解压。
python setup.py build
python setup.py install
注意:浏览器驱动文件与浏览器版本需要匹配,工作中浏览器版本不能频繁升级
chrome浏览器驱动文件下载地址:http://chromedriver.storage.googleapis.com/index.html
https://npm.taobao.org/mirrors/chromedriver
火狐浏览器驱动文件对应地址:https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html
下载地址: https://github.com/mozilla/geckodriver/releases
edge浏览器驱动文件下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
元素定位:
定位方法:
find_element():单元素定位,返回值为定位到的元素对象
find_elements():多元素定位,返回值为列表,列表中是定位到的元素对象
八种元素定位方式:
1、id定位:find_element(By.ID,'id属性值')
2、name定位:find_element(By.NAME,'name属性值')
3、class定位:find_element(By.CLASS_NAME,'name属性值')
class属性值中有空格时必须使用点代替
4、tag定位:find_element(By.TAG_NAME,'元素的标签值')
5、link_text定位:find_element(By.LINK_TEXT,'超链接文字')
6、partial_link_text定位:find_element(By.PARTIAL_LINK_TEXT,'超链接部分文字')
7、css定位:find_element(By.CSS_SELECTOR,'css值')
8、xpath定位:find_element(By.XPATH,'xpath值')
Day2:
frame框架(标签是iframe或frame)切换:
切换方法:
切入框架: switch_to.frame()
1、id切入:switch_to.frame('frame框架id属性值')
2、name切入:switch_to.frame('frame框架name属性值')
3、先定位frame框架,再切入:switch_to.frame(frame框架对象)
4、索引切入:switch_to.frame(索引值)
注意:frame框架存在嵌套的情况下需要一层一层切入
返回父框架:switch_to.parent_frame()
切出框架:switch_to.default_content()
网页切换:
1、获取打开网页的句柄,得到一个由网页对象组成的列表,按照网页打开顺序,索引从0开始
handles = driver.window_handles
2、切换网页:switch_to.window(handler[索引值])
3、c