CentOS7 启动谷歌浏览器 java+Selenium+chrome+chromedriver

这篇具有很好参考价值的文章主要介绍了CentOS7 启动谷歌浏览器 java+Selenium+chrome+chromedriver。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:自己想使用该技术实现自动化抓取音乐,目前在window上运行成功,需要在Linux Centos服务上跑,配置上出现了许多问题,特此记录。

参考文档:CentOS7 安装Selenium+chrome+chromedriver+java_远方丿的博客-CSDN博客 

一、环境

CentOS 7.6 

java (jdk1.8)

Selesium 4.11.0

google-chrome 115
chrome-driver 115

二、 整体逻辑

我们明确的是,在window上是安装了chrome和自带了chromeDriver的,之所以能自动化启动chrome是因为我们使用ChomeDriver,设置了一些参数来启动的。

1. 安装google-chrome
2. 安装chromeDriver
3. 安装XVFB主要是用来虚拟一个界面,以此让chrome在CentOS下启动

三、 安装chromeDriver

去官网查看版本下载 ChromeDriver - WebDriver for Chrome - Downloads

主要是google-chrome 和 chromeDriver要进行版本对应,不然会报错。

//下载安装包
wget https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/115.0.5790.170/linux64/chromedriver-linux64.zip

//解压:
unzip chromedriver_linux64.zip

//然后将解压的chromedriver移动到 /usr/bin目录下:
mv chromedriver /usr/bin/

//给与执行权限:
chmod +x /usr/bin/chromedriver

//检查chromedriver版本:
chromedriver -version


//如果有安装错了,可以清除chromedriver
sudo rm -f /usr/bin/chromedriver

四、安装google-chrome

1. 安装chrome,目前wget下载的连接地址,只能是当前谷歌最新版本,我也没找到如何指定版本。

//下载chrome(后缀名rpm就是Centos下的安装包后缀,ded是乌班图的安装包后缀)
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm 

//安装 chrome必须要的依赖库
yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts

//安装chrome
rpm -ivh google-chrome-stable_current_x86_64.rpm

//启动chrome
google-chrome

2. 删除google-chrome(因为有时可能安装版本错误,要进行删除操作)

#杀掉谷歌进程
ps -ef | grep chrome | grep -v grep | awk '{print "kill -9 "$2}'|sh

# 卸载chrome
yum remove google-chrome-stable.x86_64 -y 

3. 查看chrome是否安装成功

chrome -version

 java 谷歌浏览器,linux,selenium,chrome,测试工具

4. 运行chrome

#运行chrome命令

google-chrome

但又报错

//报错信息

Missing X server or $DISPLAY
The platform failed to initialize.  Exiting. 
NaCl helper process running without a sandbox!
Most likely you need to configure your SUID sandbox correctly
 

缺少X服务器或$DISPLAY

平台初始化失败。正在退出。

NaCl辅助进程在没有沙箱的情况下运行!

很可能您需要正确配置SUID沙箱

//修改启动命令
google-chrome --no-sandbox 

总是这样手动添加 --no-sandbox也不方便,进入 /opt/chrome/google-chrome修改配置

#exec -a "$0" "$HERE/chrome" "$@"
exec -a "$0" "$HERE/chrome" "$@" --no-sandbox

上面的错误就是Centos 7.6下本身无界面,无法像window上启动chrome,所以此时我们要安装XVFB来虚拟一个界面,让其能打开chrome。下面就是安装XVFB

五、 XVFB

 XVFB是一个X服务器,可以在没有显示硬件和物理输入设备的机器上运行。也就是能在Centos上虚拟一个界面让google-chrome浏览器运行。

//全局安装Xvfb  
yum install Xvfb -y

//安装Xvfb相关的依赖
yum install xorg-x11-fonts* -y

在/usr/bin/  新建一个名叫 xvfb-chrom 的文件写入以下内容

#!/bin/bash

_kill_procs() {
kill -TERM $chrome
wait $chrome
kill -TERM $xvfb
}


# Setup a trap to catch SIGTERM and relay it to child processes
trap _kill_procs SIGTERM
XVFB_WHD=${XVFB_WHD:-1280x720x16}


# Start Xvfb
Xvfb :99 -ac -screen 0 $XVFB_WHD -nolisten tcp &
xvfb=$!
export DISPLAY=:99

chrome --no-sandbox --disable-gpu$@ &
chrome=$!

wait $chrome
wait $xvfb

添加执行权限

 chmod +x /usr/bin/xvfb-chrome

查看当前映射关系

ll /usr/bin/ | grep chrome 

java 谷歌浏览器,linux,selenium,chrome,测试工具

更改Chrome启动的软连接 

/*  下面的操作主要就是让xvfb-chrome成为运行的主体,这样chrome在xvfb下就可以运行 */

// 创建一个软连接 
ln -s /etc/alternatives/google-chrome /usr/bin/chrome


//删除google-chrome
rm -rf /usr/bin/google-chrome


//创建一个软连接
ln -s /usr/bin/xvfb-chrome /usr/bin/google-chrome

查看修改后的映射关系

ll /usr/bin/ | grep chrom

java 谷歌浏览器,linux,selenium,chrome,测试工具

下面是案例:注意代码执行顺序文章来源地址https://www.toymoban.com/news/detail-672818.html

public void test(){
            //1. 准备Chrome的配置参数
            ChromeOptions options = new ChromeOptions();
            options.addArguments("headless");  //无界面参数
            options.addArguments("no-sandbox"); //禁用沙盒

            //2. 创建chromeDriver驱动,设置参数
            WebDriver driver = new ChromeDriver(options);



            //3. 在浏览器上执行操作 ,导航到一个网址
            driver.get("https://www.baidu.com/");

            //4. 请求浏览器的信息
            String title = driver.getTitle();
            System.out.println("浏览器的信息==="+title);

            //5. 关闭浏览器
            driver.quit();
}

到了这里,关于CentOS7 启动谷歌浏览器 java+Selenium+chrome+chromedriver的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium操作谷歌浏览器,驱动使用最新版113版本,启动程序报403解决方式

    最近我将谷歌浏览器更新到最新版本【113.0.5672.127】,那么我们平时敲代码或者干测试的朋友知道,我们selenium的操作驱动版本也得提升到对应的,不然操作不了,但是我今天将两者都升级到最新版本后,启动程序依旧启动不了,为了解决该问题特有此博客产出,这里是java的

    2024年02月14日
    浏览(77)
  • Python+selenium自动化测试——启动谷歌浏览器闪退问题 Traceback (most recent call last)

    后台报错:Traceback (most recent call last) 当我们使用Python+selenium调用谷歌浏览器出现闪退问题时,其实是谷歌的驱动和浏览器的版本不一致。 from time import sleep from selenium import webdriver driver=webdriver.Chrome()  1.下载谷歌浏览器驱动=浏览器版本——对应上 http://chromedriver.storage.googlea

    2024年02月11日
    浏览(60)
  • selenium-webdriver调用谷歌浏览器和火狐浏览器

    nodejs selenium-webdriver 操作文档 https://www.npmjs.com/package/selenium-webdriver 1.调用谷歌浏览器 2.调用火狐浏览器 下面设置了一些选项 ​ 需要设置环境变量,在CMD中firefox可以打开浏览器 否则报错 Expected browser binary location, but unable to find binary in default location, no \\\'moz:firefoxOpti  

    2024年02月02日
    浏览(80)
  • 免费 Selenium各大浏览器驱动【谷歌chrme、火狐Firefox、IE浏览器】

    aardio群 625494397 废话不多说 直接开整! 竟然还有脸收费 服了 下载对应版本的浏览器驱动 目标网址 应用场景 Selenium库涉及到 安装selenium库 下载对应浏览器驱动 找到浏览器对应版本 最后直接上代码

    2024年02月16日
    浏览(75)
  • Linux centos环境 安装谷歌浏览器

    教程 地址

    2024年02月05日
    浏览(56)
  • Selenium 远程调用 Google Chrome 谷歌浏览器

    我最近又使用谷歌浏览远程调用发现不能使用了 参考连接 具体原因是因为 谷歌浏览器在11几的版本(目前是:114.0.5735.91)之后只能使用JDK高版本我目前使用的是JDK17版本远程调用如果是低版本比如102左右的是好使的,新使用方法我更新在下面 一. 前沿 每次重新运行Selenium都直接弹

    2024年02月10日
    浏览(67)
  • 使用python+selenium谷歌浏览器驱动查排名

    这套程序仅供各位同学学习,不作为商业使用工具,该工具包含隐藏浏览器指纹特征,虽然该工具减少了百度弹验证码的频率,但是还是会有一次让手动滑动验证码,作者最后也不知道百度是如何判断模拟器的。 下面介绍使用的扩展有哪些: import time #时间 from selenium import

    2024年02月11日
    浏览(78)
  • selenium爬虫,配置谷歌浏览器的driver

    用selenium爬虫时,明明已经安装了selenium模块,程序却运行不了。在使用selenium之前必须先配置浏览器对应版本的webdriver 本文主要涉及 驱动有问题driver   网上有很多手动的方法(查看谷歌浏览的版本然后在其他博主分享的webdriver中下载与自己谷歌版本号最贴近的版本号,并

    2024年02月13日
    浏览(71)
  • python用selenium模拟谷歌浏览器点页面

    1、cmd安装selenium,输入pip install selenium 2、模拟点击热搜第一条进去,连接如下 https://weibo.com/newlogin?tabtype=weibogid=102803openLoginLayer=0url=https%3A%2F%2Fweibo.com%2F 3、查看谷歌版本   4、并去下面下载对应版本的webdriver,解压后把chromedriver.exe放入python目录 CNPM Binaries Mirror https://regist

    2024年01月21日
    浏览(58)
  • selenium 加载带有插件的谷歌浏览器 option

    selenium做自动化时,每次启动都是一个干净的浏览器,这时候可以用自带的option来实现,代码如下: 还可以直接加载Chrome用户数据: 注:crx地址可以通过【打包扩展程序】获取

    2024年02月13日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包