版权声明:本文为博主原创文章,使用或转发和分享时需要标明来源的链接地址 https://blog.csdn.net/zulien/article/details/84990436
注意:服务器选用的是centos 7。centos6.5安装配置非常麻烦,而centos7安装过程很顺畅,原因可能是centos6.5对于chrome和chromedriver的支持非常之不好,准确的说不支持chrome而必须采用chromium,chromium的安装很不顺畅,所以,建议玩centos6.5的,可以升级或者重新上一台centos7服务器吧!
在无界面的CentOS7上安装Selenium+Chrome, 并使用facebook的php-webdriver测试
系统环境
CentOS Linux 7 (Core)
安装 chrome
使用下面的命令,在root用户下就可以安装最新的 Google Chrome:
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
安装 selenium
python pip install selenium
安装 chromerriver
在 chromerriver官网下载最新的ChromeDriver压缩包,解压得到chromedriver.exe文件
将下载的文件解压,放在如下位置
/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
更改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
demo:
from selenium import webdriver
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800,600))
display.start()
driver = webdriver.Chrome("/usr/bin/chromedriver") #此处把chromedriver文件的路径放进去
driver.get("http://www.baidu.com")
print(driver.page_source)
此处完整的打印出来百度首页的源码(</html>便是结束标签,标志程序运行成功)