CentOS7 安装Selenium+Chrome+ChromeDriver

2020-09-10 0 915 百度已收录

注意:我试过用CentOS 6.5玩Selenium,但是很惨,CentOS 6.5安装配置非常麻烦,而CentOS 7安装过程很顺畅,原因可能是CentOS 6.5对于chrome和chromedriver的支持非常之不好,准确的说不支持chrome而必须采用chromium,chromium的安装很不顺畅,所以,建议玩CentOS 6.5的,可以升级或者重新上一台CentOS 7服务器吧!在无界面的CentOS7上安装Selenium+Chrome,并使用facebook的php-webdriver

测试系统环境

CentOS Linux 7 (Core)

Operating System: CentOS Linux 7 (Core)
Kernel: Linux 3.10.0-693.17.1.el7.x86_64
Architecture: x86-64

安装 chrome

使用下面的命令,在root用户就可以安装最新Google Chrome:

yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

安装 selenium

在 seleniump官网 找到最新的版本,下载selenium-server-standalone-X.XX.X.jar文件

注意:最新的版本3.11,不是3.9(2018年3月)

selenium-server-standalone-3.11.0.jar

selenium服务初始化

将上述selenium放入一个文件夹中,输入如下命令初始化

java -jar selenium-server-standalone-3.11.0.jar

注意,需要 java8 环境,可以参考如下

————————————–分割线  开始————————————–

 CentOS7安装Java运行环境jdk

检测java jdk是否已经安装

1、查看Linux自带的JDK是否已安装

java -version

2、查看JDK信息

rpm -qa | grep java

显示:

java-x.x.x-gcj-compat-x.x.x.x-xxjpp.xxx

java-x.x.x-openjdk-x.x.x.x-x.x.bxx.exx

卸载(有几个卸载几个)

rpm -e –nodeps java-x.x.x-gcj-compat-x.x.x.x-xxjpp.xxx
rpm -e –nodeps java-x.x.x-openjdk-x.x.x.x-x.x.bxx.exx

还有一些其他的命令

rpm -qa | grep gcj

rpm -qa | grep jdk

如果出现找不到openjdk source的话,那么还可以这样卸载

yum -y remove java java-x.x.x-gcj-compat-x.x.x.x-xxjpp.xxx

yum -y remove java java-x.x.x-openjdk-x.x.x.x-x.x.bxx.exx

我当前安装并没有java版本,故我这就没有卸载这个流程

下载安装

首先到Oracle官网下载jdk

然后解压jdk

tar -zxvf jdk-8u162-linux-x64.tar.gz

将解压后的文件夹移到自己安装第三方软件常用文件夹中:

mv jdk1.8.0_162 /usr/local/

配置JDK环境变量

安装完成后需要配置一下环境变量,编辑/etc/profile文件:

vim /etc/profile

在文件尾部添加如下配置:

#JDK1.8 
export JAVA_HOME=/opt/jdk1.8.0_162 
export JAVA_BIN=/opt/jdk1.8.0_162/bin 
export PATH=$PATH:$JAVA_HOME/bin 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export JAVA_HOME JAVA_BIN PATH CLASSPATH

 重新加载/etc/profile文件

source命令重新加载/etc/profile文件,使得修改后的内容在当前shell窗口有效:

source /etc/profile

验证是否安装成功

java -version

如果出现以下信息则说明安装成功。

java version “1.8.0_162”
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

————————————–分割线 结束 ————————————–

安装 chromerriver

在 chromerriver官网下载最新的ChromeDriver压缩包,解压得到chromedriver.exe文件

chromedriver_linux64.zip 2018-03-20 15:22:39

将下载的文件解压,放在如下位置

/usr/bin/chromedriver

给予执行权限

chmod +x /usr/bin/chromedriver

安装 XVFB

输入如下命令

# yum install Xvfb -y 
# yum install xorg-x11-fonts* -y

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

vi /usr/bin/xvfb-chrome

#!/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 chrom

-rwxr-xr-x  1 root root  7874704 Mar 20 14:55 chromedriver
lrwxrwxrwx  1 root root        31 Mar 20 00:24 google-chrome -> /etc/alternatives/google-chrome
lrwxrwxrwx  1 root root        32 Mar 20 14:30 google-chrome-stable -> /opt/google/chrome/google-chrome

更改Chrome启动的软连接

ln -s /etc/alternatives/google-chrome /usr/bin/chrome 
rm -rf /usr/bin/google-chrome
ln -s /usr/bin/xvfb-chrome /usr/bin/google-chrome

查看修改后的映射关系

ll /usr/bin/ | grep chrom

-rwxr-xr-x  1 root root  7874704 Mar 20 14:55 chromedriver
lrwxrwxrwx  1 root root        31 Mar 20 00:24 chrome -> /etc/alternatives/google-chrome
lrwxrwxrwx  1 root root        22 Mar 20 00:11 google-chrome -> /usr/bin/xvfb-chromium
lrwxrwxrwx  1 root root        32 Mar 20 14:30 google-chrome-stable -> /opt/google/chrome/google-chrome
-rwxr-xr-x  1 root root      432 Mar 20 00:09 xvfb-chrome

使用facebook的php-webdriver测试

<?php
// An example of using php-webdriver.
// Do not forget to run composer install before and also have Selenium server started and listening on port 4444.
namespace FacebookWebDriver;
use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;
require_once(‘vendor/autoload.php’);
// start Chrome with 5 second timeout
$host = ‘http://localhost:4444/wd/hub’; // this is the default
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities, 5000);

// navigate to ‘http://www.baidu.com/’
$driver->get(‘https://www.baidu.com/’);

// wait until the page is loaded
// $driver->wait()->until(
//    WebDriverExpectedCondition::titleContains(‘百度‘)
// );

// print the title of the current page
echo “The title is ‘” . $driver->getTitle() . “‘n”;
// print the URI of the current page
echo “The current URI is ‘” . $driver->getCurrentURL() . “‘n”;

// print the pagesource of the current page
$html_selenium = $driver->getPageSource();
echo $html_selenium;

// close the browser
$driver->quit();

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

栗子博客 软件 CentOS7 安装Selenium+Chrome+ChromeDriver https://www.lizi.tw/soft/11726.html

常见问题
  • 1、杰齐1.7仅适用于PHP5.2 2、需Zend支持 3、尽量使用宝塔面板 4、尽量使用Windows 系统,关关对Linux支持不太友好。
查看详情

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

CentOS7 安装Selenium+Chrome+ChromeDriver-海报

分享本文封面