费劲口舌终于说服了十年测试工程师教我如何搭建Selenium环境

费劲口舌终于说服了十年测试工程师教我如何搭建Selenium环境,第1张

目录

一 Selenium简介

二 安装Chrome浏览器

三 下载chromedriver.exe

四 安装python解释器

五 安装pycharm:python的集成开发环境(IDE)

六 安装selenium

七 体验


一 Selenium简介

Selenium WebDriver、Selenium IDE、Selenium Grid。


这三个工具里,尤其以WebDriver应用更广泛,很多人刚开始学习Selenium时,其实就是在学习Selenium里面的WebDriver。


那么,Selenium好学吗?

我想说的是,刚开始学习Selenium时的简单和困难都是超乎你的想象的。


说它简单,原因大致如下:

如果你仅仅只是想看到浏览器有自动点击按钮的效果,那么相信我,你只需要会以下五句代码,你就可以实现浏览器的自动化运行

from selenium import webdriver
​
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
​
# 点击百度首页的“百度一下”这个按钮
elem = driver.find_element_by_id('su')
elem.click()

如果你还要继续点击其他的按钮,那么重复以上代码就可以了。


# 点击按钮1
elem_01 = driver.find_element_by_id(id_01)
elem_01.click()
​
# 点击按钮2
elem_02 = driver.find_element_by_id(id_02)
elem_02.click()
​
# 点击按钮3
elem_03 = driver.find_element_by_id(id_03)
elem_03.click()

怎么样,初步体验之后,是不是觉得自动化测试也挺简单的呢。


简单写下几句代码,就可以看到浏览器在按照你的指令自动运行,对初次接触自动化测试的你来说,惊不惊喜、意不意外呢?

如果你只是为了随便写写测试脚本,玩玩浏览器的自动化,自娱自乐一下,从这个角度来讲,恭喜你,你已经学会自动化测试了,真的很简单。


说它困难,原因可以继承上面的:

你学习Selenium自动化测试,最终是需要在企业里去适应实际的项目业务需求的。


写出来的测试脚本,是需要代替手工测试人员去执行冒烟测试、回归测试的。


你的测试脚本如果像上面那样写,虽然是可以让浏览器自动地点击按钮,但应该没有哪个企业敢用这样的测试脚本,那简直是灾难。


企业里实际的Web页面的按钮繁多,以及版本频繁更迭,页面元素随之频繁变动,会使得你昨天才写好调试好的测试脚本,今天运行就报错NoSuchElement。


明明就在眼前的元素,却偏偏怎么都定位不到。


排查错误后,发现是前端开发人员修改了某个标签。


从此以后,你就要追赶前端开发人员的修改节奏,陷入不停地修改维护脚本的泥潭里,最后扔下一句shit,果断放弃使用脚本,回到当初的手工测试。


怎么让你的测试脚本变得健壮、可复用、易维护,这就是自动化测试的困难所在,这其中涉及到很多编程的技巧和设计思想,已经不仅仅只是你会调用Selenium的函数就可以了的。


总得来说,Selenium上手很容易,大原则很好把握,但要写出健壮的测试脚本,让脚本可复用、易维护,能适应前端开发人员神鬼莫测的变动,这是很难的,往往区分自动化测试水平高低的分界线就在这里。


不过不要担忧,是有专门的技巧来提高测试脚本的健壮性的,后面会有篇章专门来介绍。


好了,不说废话了,进入今天的主题:搭建Selenium环境。


你需要以下五个必要工具:

Chrome浏览器

chromedriver.exe

python解释器

pycharm

selenium

二 安装Chrome浏览器

非常简单,打开某度,输入chrome,点击搜索后,就会d出一堆chrome安装源文件的下载链接。


任意下载哪个都可以,但最好选择最新版本的,安装过程基本就是一直点击下一步就可以了。


当然,世上浏览器千千万,Chrome、Firefox、Edge、IE、Safari、Opera,随便你用哪个,你开心就好。


但在这件事上,我建议你还是不要太'美特斯邦威'了,走点寻常路吧,就用Chrome,难道它不香吗?

三 下载chromedriver.exe

这个是浏览器驱动,暂时不必去纠结这个玩意到底是什么,你只需要知道,要想Chrome浏览器被Selenium *** 纵驱使,这个chromedriver.exe就必须存在,而且必须是跟当前Chrome浏览器的版本相匹配。


后面有一篇会从底层原理讲解这个chromedriver.exe到底是干嘛的,为什么需要它。


不同厂家的浏览器,对应的浏览器驱动也是不相同的。


比如Chrome浏览器对应的就是chromedriver.exe,Firefox浏览器对应的就是geckodriver.exe,Opera浏览器对应的就是operadriver.exe。


你用的是Chrome浏览器,那么就要去下载对应版本的chromedriver.exe。


顺带提一句,当初我搭建Selenium环境时,就为下载这个chromedriver.exe都是走了一些弯路、踩过坑的。


去网上下载别人分享的chromedriver.exe,因为从驱动名称上看不出它对应的是哪个版本的Chrome。


所以,我当时就很笨地各种试错,走了很长的弯路才总算是把浏览器驱动匹配正确了。


1.搜索chromedriver.exe的映射表

其实大可不必这样去盲搜,在Selenium的官网上,人家早就十分周到地给你准备了一份浏览器驱动的映射表,访问路径是:

https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/

 比如你点击Chrome的下载按钮,就会看到一系列版本号的chromedriver.exe源文件,如下图所示:

2.检查浏览器的版本

这时候,你就要暂停一下,去检查浏览器的版本了。


而检查Chrome浏览器版本号,有下面两个办法:

1.在浏览器的地址栏输入:chrome://version,再按下Enter键

2.在菜单栏 ---> 帮助 ---> 关于 Google Chrome 查看

友情提醒:有时候,你的浏览器版本号没有完全跟chromedriver下载列表里的版本号相同,不必惊慌,只要版本号开头的数字相同就可以了。


比如说你的Chrome版本号是87.1.3680.61,那么你下载版本号是87开头的chromedriver.exe就可以了

知道Chrome版本号之后,再继续回到上一步的chromedriver.exe下载列表,点击'87.0.4280.20',会看到:

如果你是windows系统,那么点击下载'chromedriver_win32.zip'就可以了。


注意:不要因为看到名称里有个win32,就以为它是用于32位的windows系统的,郑重声明,它是用于64位windows系统的。


把chromedriver.exe的存放路径添加到环境变量里

下载好匹配版本的chromedriver.exe之后,解压缩出来。


到这里还没有结束,还要把这个存放chromedriver.exe的文件夹路径,添加到windows *** 作系统的环境变量里。


在我的电脑 --- 右键 --- 属性,然后如图依次点击:

最后,把存放chromedriver.exe的文件夹路径,复制粘贴进去就可以了。


四 安装python解释器

  既然我们是用python语言来编写测试脚本,那么要想python脚本编写好了之后能够运行,是需要有一个python解释器的,因此要安装python解释器。


不要在某度上盲搜,直接到python官网下载即可,照例贴出官网下载地址:

https://www.python.org/downloads/https://link.zhihu.com/?target=https%3A//www.python.org/downloads/

会看到一个python各个版本的列表

  可以随意选择一个,那就选择最新的版本,点击列表的第一个版本Python 3.9.0,进去后又看到一系列的版本类型。


如果是windows系统,点击图中箭头指向的那个版本就可以了。


   等下载完毕后,直接双击安装,在安装的初始d窗,注意勾选ADD Python to PATH,这个很重要。


至于安装路径,你可以就用默认路径,直接点击Install Now。


 安装结束后,打开用户的环境变量,确认要能看到这两个路径:

C:\Users\Administrator\AppData\Local\Programs\Python\Python39\Scripts\,这个路径放到环境变量,是为了方便使用pip工具

C:\Users\Administrator\AppData\Local\Programs\Python\Python39\,这个路径放到环境变量里,是为了方便使用python解释器

五 安装pycharm:python的集成开发环境(IDE)

同样不要在某度上盲搜,直接到pycharm官网下载即可,照例贴出官网下载地址:

https://www.jetbrains.com/pycharm/download/#section=windowshttps://www.jetbrains.com/pycharm/download/#section=windows

点击下载社区版Community就可以了,是免费的,功能足够我们写测试脚本用了,不需要下载专业版Professional。


安装过程一直下一步就可以了。


六 安装selenium

我们在python环境下所说的selenium,其实就是python的一个第三方包。


在python环境里,安装第三方包有如下三种方式,任意选一种均可:

1.在命令行工具里,用pip在线安装
pip是一个 python 包的安装与管理工具,python 3.7之后的版本里,已经自带pip工具,不需要再另外单独安装。



打开windows的命令行窗口:win + R ---> cmd,按下Enter键。


然后输入pip3 install selenium,再次按下Enter键,耐心等待selenium安装成功,可能需要一会儿。


 安装结束后,为了确定selenium真的已经安装成功,可以进入python安装路径里的site-packages文件夹里,会看到selenium的文件夹。


顺便说一句,凡是用pip安装的第三方库,都会存放在site-packages这个文件夹里。


注意的坑:如果你安装时,出现诸如此类的报错,那就是你没有把pip工具、python解释器所在的路径添加到系统的环境变量里。


那么只需要把各自的目录路径添加到环境变量里就可以解决问题了。


2.在pycharm里安装

初次打开pycharm后,会提示让你新建一个项目

点击新建一个项目后,会提示你输入两个关键参数:

一个是项目的路径与名称,自己任意选择和输入即可

另一个是给这个项目指定一个python解释器,这里又要选择用不用虚拟环境,不管选择哪个,目的都是指定一个python解释器,就是把你之前安装的python解释器的路径选择进去即可

这个是选择使用虚拟环境

 这个是不使用虚拟环境

这里顺便解释一下,用虚拟环境和不用虚拟环境的区别:

用虚拟环境,那么你在pycharm里安装某个模块后,该模块只对当前新建的这个项目有效

不用虚拟环境,那么你在pycharm里安装某个模块后,是对所有的项目都有效

暂时对你而言,你用哪个都可以,都不影响你学习Selenium

创建项目成功后,然后依次点击:菜单栏File ---> Settings ---> Project ---> Project Interpreter,然后按照下图的示意 *** 作:

 在上方输入栏输入selenium,查找出结果后,点击选中selenium,然后在下方点击Install Package按钮,等待安装成功即可

安装成功后,会在Package列表里看到selenium

3.在python第三方包的仓库里下载源码安装

(1)贴出第三方包的仓库地址:https://pypi.org/

注意:你在pypi里搜索出来的selenium网页不是selenium官网,正宗的selenium官网地址是https://www.selenium.dev/

在搜索栏输入selenium搜索,然后下载selenium的压缩包,按下图示意的顺序 *** 作:

下载selenium的压缩包后,然后解压缩,会看到selenium文件夹里有个setup.py的文件,这个文件就是用来安装selenium的

然后打开windows的命令行窗口,先进入刚才解压缩后的selenium的目录下,再输入python setup.py install,按下Enter键后,开始安装selenium,安装过程会很快,几秒钟即可结束

七 体验

经过上面的“二万五千里长征”,你已经完整地安装了学习Selenium所需要的所有工具:

Chrome + chromedriver.exe + python + pycharm + selenium

我个人觉得不要轻视这个搭建Selenium的过程,对初次接触Selenium,甚至是初次接触python的那些初学者而言,在搭建Selenium环境的过程里,是会报出很多奇奇怪怪的错误的,会让人觉得很有挫败感,怎么搭建个环境都这么难。


细心仔细地按照我上面的详细步骤,是可以成功搭建Selenium环境的。


万一真的还是有奇怪的错误报出来,可以留言或者私信。


打开pycharm,进入刚才新建的项目里,在项目名称上右键 ---> New ---> Python File

写下如下两句代码:

from selenium import webdriver
​
driver = webdriver.Chrome()

然后右键 ---> Run,就会看到Chrome浏览器被自动化地打开了

浏览器是窗口化模式打开了一个空白网页,网页还有提示: 'Chrome正受到自动测试软件的控制 

好了,到这里,就说明你的Selenium环境已经成功搭建好了。


遇到的坑:

如果有一天,你本来已经正常运行无数次的脚本,突然在第一句代码'driver = webdriver.Chrome()'这里就报错,浏览器都无法打开,错误信息类似于如下:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81

那么我告诉你,这是因为你的浏览器在你不知情的情况下,偷偷地自动更新升级版本了。


但是你的chromedriver.exe并没有跟着升级版本,因此导致浏览器和driver版本不匹配,于是就无法驱动浏览器打开了。


有两个办法可以解决这个问题:

  1. 如果用的是Chrome浏览器,那么在地址栏输入:chrome://version/,再回车,会看到当前浏览器的版本号
    然后再重新去下载与之匹配的chromedriver.exe。


    这个方法治标不治本,说不定过几天,Chrome浏览器版本又升级了,那么就又要重新下载最新的chromedriver.exe

  2. 下载一个版本号稍微旧一点的Chrome源文件,然后安装,这样安装的Chrome浏览器就无法自动更新了,那么你匹配好的chromedriver.exe就可以一直使用了。


    旧版本的Chrome源文件我这里有,因为网站上没法挂载下载链接,需要的可以关注我领取链接

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/570509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存