web自动化的工作原理
1.Python无法直接操作浏览器,因为浏览器中不存在Python环境;
2.浏览器内置了JavaScript的解释器,开发人员开发的前端页面也是使用JavaScript进行编写,每个浏览器中都存在js运行环境;
3.所以Python要想操作浏览器,就需要借助一个浏览器驱动webdriver去操作,由python向webdriver发送http请求(通过requests库发送)
4.webdriver运行时提供很多接口,当Python去访问webdriver的某个接口,如openbrowser,就会打开浏览器;
5.驱动接收到url地址请求后,就表示要打开一个浏览器,驱动就会告诉js,去打开浏览器。
环境准备
1、python3 ,直接官网下载安装并配置环境变量
https://www.python.org/downloads/
2、 selenium,一个用于Web应用程序测试的工具,可以通过pip安装:pip install selenium
3、浏览器,常用的谷歌、火狐、IE等
4、浏览器驱动,可以在淘宝镜像下下载
所有火狐浏览器版本下载地址:http://ftp.mozilla.org/pub/firefox/releases/
所有火狐驱动geckodriver版本下载地址:https://github.com/mozilla/geckodriver/releases
二 、IE浏览器驱动下载地址
本人使用的IE和IEDriverServer:
IE浏览器版本:11 IEDriverServer版本:Win32_3.0.0
IE浏览器所有驱动版本下载地址:http://selenium-release.storage.googleapis.com/index.html
三、chrome和chromedriver版本下载地址及对应关系
【国外】chromedriver所有版本下载地址:http://chromedriver.storage.googleapis.com/index.html
【国内】chromedriver所有版本下载地址:https://npm.taobao.org/mirrors/chromedriver
【国内】chrome所有版本下载地址:https://www.chromedownloads.net/chrome64win/
【国外】浏览器版本和驱动版本对应关系查看网址:http://chromedriver.chromium.org/downloads
5、 pytest,基于python的第三方单元测试框架,相比于unittest,功能更强大,支持很多插件,更自由的定义fixture装载测试用例。## TODO:pytest的paramatrize和fixture和unittest不兼容,其它功能兼容.
一、浏览器的一些常用基础操作
二、等待
三、窗口切换
四、alert弹框