房产信息网站,营口建网站的公司,二手书的网站建设,制作图片的电脑软件前言#xff1a;
Python作为一门胶水语言来说#xff0c;可以说是十分的优秀#xff0c;什么事情都可以干#xff0c;并且在某些领域还能干的非常不错#xff0c;尤其是在爬虫和测试领域#xff0c;该语言可以说是没有对手。
这么说的原因是因为如果你要使用爬虫爬取某…前言
Python作为一门胶水语言来说可以说是十分的优秀什么事情都可以干并且在某些领域还能干的非常不错尤其是在爬虫和测试领域该语言可以说是没有对手。
这么说的原因是因为如果你要使用爬虫爬取某些东西或者对于某些项目做一些测试工作并且这个测试工作还是比较繁琐的时候那么Python可以帮助你实现完全的自动化从而解放双手和大脑而你并不会去考虑其它的任何语言虽然这些功能其它语言是能够实现的例如测试工作Java语言可以实现js语言也可以实现如果从开发效率这个维度来看的话开发效率会是Python的几分之一甚至是十几分之一如果从运行效率这个维度来看的话那么其它的语言可能会比Python快上那么一丢丢但who care呢
单纯的从测试这个工作的视角来看现在有很多的工具可以实现例如jmeterabseleniumTestDirector silktestapifoxloadrunner等等工具这些工具按类型可以分为压力测试性能测试功能测试等等。
那么功能测试里selenium是比较好的一款软件了只是它需要使用Python语言开发使用上是有一定的难度的接近前端的底层完全在代码层面控制操作
而selenium可以做压力测试功能测试和性能测试但主要集中在性能测试上突出的优点是该软件由于是完全模拟人工点击因此它的准确率是非常高的。
那么本文将介绍如何安装部署selenium以及selenium模拟登录的一个演示也就是一个基本的性能测试。
一
selenium框架的架构
selenium框架可以运行在Python2或者Python3下基本是不挑Python版本的这一点是比较友好的地方。
其次需要一个浏览器比如谷歌浏览器Firefox浏览器eg浏览器IE浏览器等等一般支持的是这四种常用的浏览器但浏览器的版本最好是不要太高接近用户所使用的浏览器版本即可。
最后呢就是selenium需要浏览器的驱动一般谷歌浏览器的驱动下载地址CNPM Binaries Mirror 这里需要特别注意驱动的版本和浏览器的版本最好是一致的不能相差太大否则selenium可能会启动报错。
如果selenium成功的启动它将会通过驱动打开一个浏览器的实例并按照你代码内的定义动作进行点击或者输入例如自动登录某个网站这个网站可能会是你的项目的入口当然了随着技术的进步高版本的selenium会在后台打开一个无头浏览器也就是说这个浏览器你是看不到的但它会做你定义的动作。
特别说明
测试工作一般是在应用端也可以理解为客户端工作也就是b端而百分之九十的项目是部署在Linux端一般需要测试的项目是b/s架构的但客户端一般都是使用Windows的因此selenium也主要是安装在Windows端前面刚开始学习的时候就犯糊涂了在Linux下安装selenium通常是不需要这样做的。
本次实验用的Python版本是3.8.1谷歌浏览器版本是86版本 驱动下载一定要注意是win32的 二
Windows部署环境
非常的简单没什么好说的Python安装都不好意思说了非常的简单傻瓜化的下一步就完事。
selenium也是非常的简单一条命令就可以了pip install selenium 这里只是需要注意一点由于Python的安装包基本都是国外的因此需要本地化处理一下
严谨点在资源管理器栏输入命令 %appdata%,该命令是定位该文件夹在此目录内新建文件夹名称为pip在该新建文件夹内新建文本文档名称为pip.ini。写入如下内容
[global]
index-urlhttp://mirrors.aliyun.com/pypi/simple/
timeout 6000
[install]
trusted-hostmirrors.aliyun.com
打开cmd执行上面的安装命令pip install selenium 注意了哈这里安装的selenium是4.11.2版本4.0版本以上和4.0版本以下selenium的用法是有很多差异的本例以4.0版本以上为例就不说4.0版本以下了
三
运行第一个selenium打开百度的首页
需要先把谷歌浏览器的驱动放置到Python的可执行文件同层目录下具体步骤如下
1
查询Python的安装位置 2
chromedriver_win32.zip这个文件解压出来的驱动放置到上面查询的目录下即可
3
编写Python文件文件内容如下
from selenium import webdriver# 初始化浏览器为chrome浏览器
browser webdriver.Chrome()# 访问百度首页
browser.get(rhttps://www.baidu.com/)# 关闭浏览器
browser.close()
4
cmd窗口内运行此Python文件
如果谷歌浏览器版本和驱动的版本不匹配将会报错如下
(我是使用了114的驱动但谷歌浏览器的版本是86因此报错 正常的无报错的运行 四
保持selenium的窗口是打开的状态
代码内增加一个无限循环
from selenium import webdriver# 初始化浏览器为chrome浏览器
browser webdriver.Chrome()
while 20:# 访问百度首页browser.get(rhttps://www.baidu.com/)# 关闭浏览器
browser.close()效果如下图 那么这个方式是比较粗暴的有没有优雅一些的方法呢
from selenium import webdriver# 获取配置对象 什么样的浏览器就选择什么浏览器配置
option webdriver.ChromeOptions()
option.add_experimental_option(detach, True)# 获取driver对象, 并将配置好的option传入进去
driver webdriver.Chrome(optionsoption)
driver.get(https://www.baidu.com)
五
关于谷歌浏览器和谷歌浏览器的驱动问题
首先谷歌浏览器和它的驱动是必须要强对应的比如谷歌浏览器版本是版本 89.0.4389.128正式版本 64 位那么驱动应该是下图那样的 其次是谷歌浏览器会自动更新升级而自动更新升级是比较难以关闭的因此可以选择谷歌的离线安装版本这样可以规避谷歌浏览器的自动升级因此本文将谷歌浏览器的离线安装包分享出来大家根据自己情况使用
链接https://pan.baidu.com/s/1ba74wDCYT5TY1uocxjFyBA?pwdkkey 提取码kkey OK如果谷歌浏览器是正常安装的话selenium会自动的找到它如果是离线安装的比如我后面将谷歌浏览器安装在了桌面这个时候自然是找不到谷歌浏览器了怎么办呢
代码里指定谷歌浏览器的位置
注需要多导一个模块也就是第三行第四行指定谷歌浏览器的执行文件第五行表示程序执行完不关闭浏览器
#coddingutf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options Options()
options.binary_location C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe
options.add_experimental_option(detach, True)
driver webdriver.Chrome(optionsoptions)
driver.get(http://www.baidu.com)
同时指定驱动的位置
#注增加第四行变量path的值是驱动的路径在后面的对象中引用即可。
#coddingutf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
options Options()
options.binary_location C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe
options.add_experimental_option(detach, True)
pathService(f:\\chromedriver.exe)
driver webdriver.Chrome(optionsoptions,servicepath)
driver.get(http://www.baidu.com)
OKselenium暂时调试好了下一篇文章将讲述如何实际应用此框架。