介绍
介绍
Python的selenium库是可以实现用代码模拟用户上网行为的功能,所以Python的selenium库的使用技巧成为了大部分测试工程师的必备技能。Python的selenium通过chromedriver驱动可以使用Python代码启动浏览器、打开网页、读取网页数据、提交用户表单、登录网址平台等等用户日常的上网行为,这就可以让我们使用Python代码去模拟用户去操作网站功能、去使用平台功能。
使用Python的selenium库可以帮助测试工程师去自动化测试研发开放的功能是否正常,可以帮助数据分析工程师自动化采集网站数据,可以帮助想要做搜索引擎平台的站长轻松实现网页蜘蛛的功能。
今天福哥就要在我们的TFWindows上搭建这个Selenium环境,没有弄过的童鞋可以围观了。
安装
安装selenium库
通过pip工具安装selenium库。
pip install selenium
安装Chrome浏览器
这个就不教了,福哥给出Chrome官网下载地址,别去第三方的网站下载就可以了!
默认从官网下载的是Chrome安装器,安装过程中需要联网。
安装chromedriver驱动
从官网选择最新版本下载下来,版本一定要和我们按照的Chrome浏览器的版本一致
Chrome版本号
打开Chrome浏览器,点地址栏右边的三个点,选择“帮助”>“关于 Google Chrome”,找到下图中的版本号。
下载chromedriver驱动
打开驱动下载页面,找到匹配的版本的驱动。
我们只需要保证版本号前面的3段匹配即可,最后一段不用管他,也就是说“91.0.4472”匹配即可。会有很多匹配的项目,因为是Windows平台,所以我们只需要找到win32版本就可以了。如果有多个win32版本,找出版本号最后一段最大的那个即可。
http://chromedriver.storage.googleapis.com/
把<Key>...</Key>里面的资源URI复制导驱动网址后面就可以下载了。
http://chromedriver.storage.googleapis.com/91.0.4472.101/chromedriver_win32.zip
安装chromedriver驱动
解压缩下载下来的压缩包,将里面的chromedriver.exe放到Python的Scripts目录下面。
隐藏控制台信息
默认情况下,我们使用selenium连接服务器会有一堆的控制台信息,非常不便于我们调试程序。
安装pypiwin32
首先我们需要安装pypiwin32库。
pip install pypiwin32
修改service.py
接着我们要改造service.py脚本,下面是service.py脚本的路径位置。
C:\Python38\Lib\site-packages\selenium\webdriver\common\service.py
打开service.py脚本,首先导入CREATE_NO_WINDOW。
from win32process import CREATE_NO_WINDOW
接着找到“Starts the Service”关键字位置,修改subprocess.Popen调用,增加参数CREATE_NO_WINDOW。
self.process = subprocess.Popen(cmd, env=self.env, close_fds=platform.system() != 'Windows', stdout=self.log_file, stderr=self.log_file, stdin=PIPE, creationflags=CREATE_NO_WINDOW)
配置完需要重新启动编辑器IDLE,然后运行Python程序,这时候观察控制台你会发现“这个世界清静了~~”
测试
现在编写测试代码来测试selenium库是否正常。
测试
代码
建立Selenium.py程序文件,写入如下代码。
#encoding=UTF-8 from selenium import webdriver import time import re # init opts = webdriver.ChromeOptions() opts.add_argument("--disable-gpu") opts.add_argument("--no-sandbox") # set opts chrome = webdriver.Chrome(options=opts) # load baidu.com chrome.get("http://www.baidu.com") # find kw input and type 'site:tongfu.net' in it input = chrome.find_element_by_id("kw") input.send_keys("site:tongfu.net") button = chrome.find_element_by_id("su") button.click() # wait time.sleep(3) # get page source source = chrome.page_source # test source regexp = re.compile(r"首页- 同福网 TONGFU.net", re.M) mats = regexp.search(source) if mats: print (mats.group()) else: print ("没有找到") # quit chrome.quit()
启动程序
运行Selenium.py程序。
首先python会自动启动Chrome浏览器。
接着自动打开www.baidu.com首页,自动输入关键字“site:tongfu.net”,自动点击搜索按钮。
最后检查页面源代码里是否包含“首页- 同福网 TONGFU.net”。
总结
使用Selenium可以实现模拟大部分用户的上网行为,可以用来测试网站功能是否正常,包括用户注册、用户登录、发布主题、回复主题、点赞等等非常具体的操作,Selenium是测试工程师的必修课。
当然,也可以用来抢火车票,抢下秒杀商品,抢挂号。。。但是,福哥不会教这些,自己研究吧!哈哈哈~~