Selenium linux 系统下搭建 selenium 环境运行脚本

广深-小龙 · 2019年12月30日 · 最后由 阳光下的草 回复于 2019年12月31日 · 2622 次阅读

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!更推荐 docker selenium 来做分布式执行。
欢迎来 QQ 交流群:482713805 个人博客地址:https://www.cnblogs.com/gsxl/

共收到 5 条回复 时间 点赞

ddt 没装成功,超时了;python 指定路径

python 指定什么路径的?😂

广深-小龙 回复

指定 python 的 exe 路径,不然怎么运行

...这里不用的好吗😨

每次 docker run 起的都是新的容器
建议好好看看 docker 使用手册

广深-小龙 关闭了讨论 12月31日 13:50
广深-小龙 重新开启了讨论 05月09日 10:40
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册