selenium环境安装
前面介绍了那么多,终于到本文的正题了,python开发环境如何安装selenium呢?
python,有自带的内置模块(os、time), 也有第三方模块,第三方模块需先安装 ,才可使用
要做自动化,就先安装环境
1、先安装selenium
2、查看浏览器类型及版本号
3、下载对应的浏览器驱动(低版本的火狐浏览器不需要下载驱动,高版本需要下载驱动)
4、就是将驱动放置对应安装目录下
下面就是具体的步骤
一、安装selenium
1、 使用python自带的pip安装工具
1.1、打开命令行cmd窗口(win+R或者在我的电脑路径里面输入cmd)
直接输入命令:
pip install selenium
或(pip install selenium==2.53.6)指定下载的版本号
2、如果没有配置python环境变量,首先需切换至pip工具安装目录,进入python的安装目录的,每个人的安装目录可能不一样的,我安装在D盘
2.1、把pip.exe拖到cmd命令窗口中
至于为什么要配置环境变量(就是你要运行python文件,需要解释器,然后你需要给程序说你的解释器放在哪,它才去那找,默认就先从当前目录找,找不到就去系统环境变量去找,所以你配置了环境变量就可以了,如果没有配置,就需要给他指定路径)
特殊情况:python安装默认国外的源,比较慢,有时候安装不成功或者报超时,后面可以指定下载的路径,比如一些国内大公司搭的服务器、在后面添加参数,指定下载源 -i 后面的接的是安装源,选择的是清华的,
install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple 点击回车
2.2、应该一分钟左右就会出现安装成功的提示
3、使用Pycharm编译工具直接安装selenium
二、安装chrome浏览器,如果已经安装就不必再安装了
前面也讲了,selenium是支持多浏览器的,后续主要以chrome浏览器为例展开介绍,其他浏览器安装是类似的。
下载浏览器的时候认准官方正版,避免山寨
浏览器安装不对,错误提示是没找到浏览器或者安装不对
三、查看浏览器的版本号
浏览器的版本号,主要看前面的大版本即可
四、查找和版本号相关的chrome驱动
网址 https://blog.csdn.net/qq_43422918/article/details/97244696
五、根据网址下载对应驱动
里面分window linux mac系统,这个不分什么32位,64位,直接按对应的操作系统下载即可
六、解压后放置到python的安装目录,如下图
七、打开pycharm ,查看settting中的python解释器是否有对应的selenium库,有则说明安装成功,没有则说明设置的python解释器不对,有些人本地环境安装多个python解释器,如python2.7,python3.6,重新选择解释器
八、关闭浏览器自动更新
关闭浏览器自动更新功能(防止驱动版本与浏览器对应不上)
关闭浏览器更新。chrome需要去 控制面板--》管理工具--》服务--》google服务禁用--》reboot
异常情况:
安装的过程中出现Traceback (most recent call last):异常
安装前先关闭防火墙
Selenium原理
先通过一个简单的类比说个好理解的,这个比喻是我从美版知乎Quora上看到的,觉得比较形象、好理解拿来用用。
我们可以把WebDriver驱动浏览器类比成出租车司机开出租车。
在开出租车时有三个角色:
- 乘客:他/她告诉出租车司机去哪里,大概怎么走
- 出租车司机:他按照乘客的要求来操控出租车
- 出租车:出租车按照司机的操控完成真正的行驶,把乘客送到目的地
在WebDriver中也有类似的三个角色:
工程师写的自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动)
浏览器的驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏览器
浏览器:执行浏览器驱动发来的指令,并最终完成工程师想要的操作。
所以在这个类比中:
1. 工程师写的自动化测试代码就相当于是乘客
2. 浏览器的驱动就相当于是出租车司机
3. 浏览器就相当于是出租车
总之,selenium是用于web自动化测试的工具集,通过驱动浏览器代替人工完成兼容性测试或功能回归测试,支持多浏览器及多语言开发。
Selenium测试直接运行在浏览器中,就像真正的用户在操作一样
下面再从技术上解释下WebDriver的工作原理:
从技术上讲,也同样是上面的三个角色:
1. WebDriver API(基于Java、Python、C#等语言)
对于java语言来说,就是下载下来的selenium的Jar包,比如selenium-java-3.8.1.zip包,代表Selenium3.8.1的版本
2. 浏览器的驱动(browser driver)
每个浏览器都有自己的驱动,均以exe文件形式存在
比如谷歌的chromedriver.exe、火狐的geckodriver.exe、IE的IEDriverServer.exe
3. 浏览器
浏览器当然就是我们很熟悉的常用的各种浏览器。
工作原理
WebDriver的工作原理,简述如下:
1. webdriver是按照client - server的经典设计模式设计的;
2. server端就是remote server,脚本启动的浏览器,它的职责就是等待client发送请求并做出相应;
3. client端就是我们的测试代码,操作命令以http请求的方式发送给被server端,server接受请求,执行相应操作,并在response中返回执行状态、返回值等信息;
测试
Selenium安装后,需要测试下是否可以正常工作,
新建python文件,只需几条语句:
#coding=utf-8
import time
from selenium import webdriver
driver =webdriver.Chrome()#实例化一个谷歌浏览器,并打开
driver.maximize_window()#最大化浏览器
driver.get('https://www.baidu.com')#输入网址
time.sleep(5)#等待5秒
driver.quit()#关闭浏览器
此时,如何浏览器被打开且自动访问了百度网址,那么安装就正常完成了。
MAC操作系统
关闭谷歌更新:
可能在有些Mac上发现在“/Library”这个根目录下没有Google目录,那么其实在“~/Library”这个用户目录下也有一个Google目录。在该目录下执行操作同样可以禁用自动更新。请执行以下命令:
cd ~/Library/Google
sudo chown root:wheel GoogleSoftwareUpdate
相当于修改了GoogleSoftwareUpdate这个文件夹的拥有者,而不仅仅是修改了权限,使Google对该文件夹没有写入权限。事实证明这种方式是可行的。重启Chrome完成以后通过“帮助->关于Google Chrome”可以查看信息:
下载相应的ChromeDriver
安装ChromeDriver
将下载好的可执行文件移动到/usr/local/bin目录中:
将下载的ChromeDriver文件解压拖到桌面上,然后命令移到指定目录
sudo mv ~/Desktop/chromedriver /usr/local/bin
执行cd /usr/local/bin然后ll查看里面文件,会看到ChromeDriver
环境部署参考链接:https://blog.csdn.net/Lynn_mg/article/details/84523007
关闭谷歌更新参考链接:https://blog.csdn.net/chenyufeng1991/article/details/78568919