linux-3-搭建selenium环境运行脚本
前言
linux 下搭建有助于我们 jenkins 下进行持续集成测试,只需要写代码,提交代码,自动构建即可。
但是linux也是需要搭建selenium环境的,比如chrome、chromedriver,那么这篇文章展开广深小龙搭建的过程。
一、下载chrome与chromedriver
1、下载chrome:
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
2、查看chrome版本:google-chrome --version
[root@iZbp19lugf22zbsubsf1y6Z ~]# google-chrome --version Google Chrome 81.0.4044.113
3、下载chromedriver,这里注意要在这里看对应的版本和下载对应的版本:http://npm.taobao.org/mirrors/chromedriver/
4、例子:比如我安装的chrome版本为:Google Chrome 81.0.4044.113 那么chromedriver对应的版本也要是:81.0.404.xxx
命令:wget http://npm.taobao.org/mirrors/chromedriver/81.0.4044.69/chromedriver_linux64.zip
[root@iZbp19lugf22zbsubsf1y6Z ~]# wget http://npm.taobao.org/mirrors/chromedriver/81.0.4044.69/chromedriver_linux64.zip --2020-04-18 09:51:34-- http://npm.taobao.org/mirrors/chromedriver/81.0.4044.69/chromedriver_linux64.zip Resolving npm.taobao.org (npm.taobao.org)... 114.55.80.225 Connecting to npm.taobao.org (npm.taobao.org)|114.55.80.225|:80... connected. HTTP request sent, awaiting response... 302 Found Location: https://cdn.npm.taobao.org/dist/chromedriver/81.0.4044.69/chromedriver_linux64.zip [following] --2020-04-18 09:51:34-- https://cdn.npm.taobao.org/dist/chromedriver/81.0.4044.69/chromedriver_linux64.zip Resolving cdn.npm.taobao.org (cdn.npm.taobao.org)... 183.131.210.241, 183.131.210.250, 183.131.210.242, ... Connecting to cdn.npm.taobao.org (cdn.npm.taobao.org)|183.131.210.241|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 4956612 (4.7M) [application/zip] Saving to: ‘chromedriver_linux64.zip’ 100%[====================================================================================================================================================================================================================================>] 4,956,612 --.-K/s in 0.06s 2020-04-18 09:51:34 (77.6 MB/s) - ‘chromedriver_linux64.zip’ saved [4956612/4956612] [root@iZbp19lugf22zbsubsf1y6Z ~]#
5、解压zip包,注意如果没有zip要先安装:yum install -y zip
解压:unzip chromedriver_linux64.zip
[root@iZbp19lugf22zbsubsf1y6Z ~]# unzip chromedriver_linux64.zip Archive: chromedriver_linux64.zip inflating: chromedriver
6、移动至usr/bin/目录下:mv chromedriver /usr/bin/
[root@iZbp19lugf22zbsubsf1y6Z ~]# mv chromedriver /usr/bin/
7、查看chromedriver版本:chromedriver --version
[root@iZbp19lugf22zbsubsf1y6Z ~]# chromedriver --version ChromeDriver 81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}) [root@iZbp19lugf22zbsubsf1y6Z ~]#
二、运行selenium脚本尝试
1、事先要安装好:①python ②selenium (我已安装)
Python 安装请参考:https://www.cnblogs.com/gsxl/p/11747736.html
[root@iZbp19lugf22zbsubsf1y6Z ~]# pip3 install selenium Looking in indexes: http://mirrors.cloud.aliyuncs.com/pypi/simple/ Requirement already satisfied: selenium in ./python36/lib/python3.6/site-packages (3.141.0) Requirement already satisfied: urllib3 in ./python36/lib/python3.6/site-packages (from selenium) (1.22)
2、py脚本如下:
注意无界面模式的 option 参数一定要设置好,否则各种报错。
from selenium import webdriver import sys def is_driver(no_ui=False): ''' 1、判断是在什么环境下运行 2、no_ui win系统下默认为界面模式,无界面设为:True ''' if 'linux' in sys.platform: option = webdriver.ChromeOptions() option.add_argument('headless') # 浏览器不提供可视化页面 option.add_argument('no-sandbox') # 以最高权限运行 option.add_argument('--start-maximized') # 最大化运行(全屏窗口)设置元素定位比较准确 option.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug # option.add_argument('--window-size=1920,1080') # 设置浏览器分辨率(窗口大小) driver = webdriver.Chrome(options=option) else: if no_ui: ''' win系统下无界面模式 ''' option = webdriver.ChromeOptions() option.add_argument('headless') # 浏览器不提供可视化页面 option.add_argument('--start-maximized') # 最大化运行(全屏窗口)设置元素定位比较准确 driver = webdriver.Chrome(chrome_options=option) else: driver = webdriver.Chrome() driver.maximize_window() # 将浏览器最大化 return driver driver = is_driver() driver.get('https://www.baidu.com/') print('title:', driver.title) print('执行完毕:!!!') driver.quit()
3、运行:python3 xxx.py
[root@iZbp19lugf22zbsubsf1y6Z ~]# python3 ~/t.py title: 百度一下,你就知道 执行完毕:!!! [root@iZbp19lugf22zbsubsf1y6Z ~]#
最后完毕,值得注意的是有两个地方:①chrome 与驱动 chromedriver 版本匹配 ②selenium 无界面模式时传的 option 参数。
试运行正常后,便可以与jenkins进行构建了,web的持续集成测试ok!
请到QQ交流群一起学习:482713805 !!!