Linux—Docker下安装Chrome浏览器和ChromeDriver

本文讲述了如何在Docker容器中安装Chrome浏览器、处理依赖问题、更新Chrome版本、安装和配置chromedriver,以及解决在jenkins中使用Selenium遇到的常见问题,包括权限设置和参数调整。
摘要由CSDN通过智能技术生成

文本主要参考文章:Docker-Jenkins+Selenium+Chrome环境搭建_jenkins容器上 chromedriver放哪里-CSDN博客

1、下载chrome浏览器安装包

下载地址:Google Chrome 网络浏览器

拖拉浏览器至最底部-选择其他平台

选择Linux进行下载

将下载的google-chrome-stable_current_amd64.deb文件上传至linux服务器。并运用docker cp命令将该文件复制到/var/jenkins_home目录

chrome文件赋值权限
chmod +x google-chrome-stable_current_amd64.deb
安装chrome
dpkg -i google-chrome-stable_current_amd64.deb
安装报错
google-chrome-stable depends on libxfixes3; however:
  Package libxfixes3 is not installed.
google-chrome-stable depends on libxkbcommon0 (>= 0.4.1); however:
  Package libxkbcommon0 is not installed.
google-chrome-stable depends on libxrandr2; however:
  Package libxrandr2 is not installed.
google-chrome-stable depends on xdg-utils (>= 1.0.2); however:
  Package xdg-utils is not installed.

dpkg: error processing package google-chrome-stable (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
google-chrome-stable
安装多余依赖

这个时候我们需要安装多余依赖包

sudo apt-get -f install 

重新安装

重新安装 这次我们用sudo安装

sudo dpkg -i google-chrome-stable_current_amd64.deb

安装成功,查看google-chrome版本

google-chrome --version

2、更新chrome版本

因为chrome需要配合chromedriver使用,所以需要保证chrome和chromedriver版本号一致,由上步骤安装的chrome可能无法找到合适的chromedrive版本,由此需要更新chrome版本。

chrome版本下载地址:http://dist.control.lth.se/public/CentOS-7/x86_64/google.x86_64/

chromedrive版本下载地址:https://chromedriver.chromium.org/downloads

我下载使用的版本为:102.0.5005.115

同样将下载的chrome:google-chrome-beta-103.0.5060.24-1.x86_64.rpm文件和chromedrive:chromedriver_linux64.zip上传至linux服务器

使用docker cp 当前存放文件路径 容器id:存放文件的容器路径,复制到容器中

docker /upfile/chrome 19ad147df28c:/var/upfile

将rpm安装包转换为debg格式使用命令alien命令:alien -d rpm包名称

alien命令安装步骤参考链接:Linux软件包转换-deb与rpm互转_deb2rpm-CSDN博客

alien -d google-chrome-stable-102.0.5005.115-1.x86_64.rpm

执行结果如下:

将google-chrome-stable_102.0.5005.115-2_amd64.deb移动至/var/jenkins_home目录,

名字重命名为google-chrome-stable_102_amd64.deb

执行如下代码更新chrome版本

sudo dpkg -i google-chrome-stable_102_amd64.deb

执行结果如下,执行google-chrome --version 查看chrome版本

3、安装chromedriver

将上面上传到docker容器中得chromedriver_linux64.zip使用unzip chromedriver_linux64.zip进行解压

设置权限
chmod +x chromedriver

将驱动放到bin目录下

mv chromedriver /usr/bin/

cp /usr/bin/chromedriver /usr/local/bin/
权限不足重新赋值

这个我上网查资料发现是权限不足,所以重新给他赋值权限

进入/usr/bin 目录重新给google-chrome赋值

chmod 777 google-chrome
配置驱动环境变量

找出驱动位置

which chromedriver

然后vim /etc/profile

#chromedriver
export PATH=$PATH:/usr/local/bin/chromedriver

添加完成之后保存

source /etc/profile

接下来就可以尝试在容器中运行自动化测试脚本

4、常见报错

解决方案:在初始化driver时加入如下参数

chrome_options = Options()
        chrome_options.add_argument('--headless') # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
        chrome_options.add_argument('--no-sandbox')  # 解决DevToolsActivePort文件不存在的报错
        chrome_options.add_argument('--disable-dev-shm-usage') # 大量渲染时候写入/tmp而非/dev/shm
        chrome_options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug
        chrome_options.add_argument('-–single-process')  #以单进程模式运行 Chromium。(启动时浏览器会给出不安全警告)
        chrome_options.add_argument('window-size=1920x1080')  # 指定浏览器分辨率
        chrome_options.add_argument('--start-maximized')  # 最大化运行(全屏窗口),不设置,取元素会报错
        chrome_options.add_argument('--user-data-dir=/home/jenkins/data')
        chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
        chrome_options.add_experimental_option('useAutomationExtension', False)
        self.driver = webdriver.Chrome(options=chrome_options, executable_path='/usr/bin/chromedriver')

chrome_options.add_argument('--user-data-dir=/home/jenkins/data')

并在容器中手动创建目录/home/jenkins/data,并将权限修改为777

chmod -R 777 /home/jenkins/data

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值