XVFB实现selenium在linux上无界面运行安装篇
selenium在linux上无界面运行,其实是非常简单的。具体的方法有使用HtmlUnitDriver或者PhantomJSDriver,有时间我会写写关于这两个东东的文章,其实基本和ChromeDriver 和FirefoxDriver是一样的。但是有些人或者会比较排斥他们说HtmlUnitDriver对JS支持不好,PhantomJSDriver估计也很少有人用,其实他是对Phantomjs的封装,对这些不做多过评论,我用下来感觉还好。
还有另一种方法,就是使用XVFB, 有人说XVFB是什么,没听说过,没听说过就自己Google吧。
这里就主要是讲一下XVFB的安装使用。以chrome + ubuntu 和 firefox + centOS 为例子(chrome linux版好像是到6的时候就不支持centOS了, 都自带firefox )
一、 XVFB在Ubuntu上的安装(chrome)
1. 安装ubuntu(百度google安装步骤)
2. putty.exe 连接ubuntu
安装openssh-server:sudo apt-get install openssh-server
启动openssh-server: sudo /etc/init.d/ssh start
确认openssh-server是否启动:ps -e | grep ssh
telnet ip 端口号
3. 安装oracle JDK6:(可跳过:自带penjdk-6-jre)
$ remove openjdk: sudo apt-get autoremove openjdk-6-jre
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java6-installer
$ sudo update-java-alternatives -s java-6-oracle
4. 装chrome:(自带firefox)
http://www.ubuntuupdates.org/ppa/google_chrome
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get install google-chrome-stable
5. 装xvfb 及各种:
sudo apt-get update && sudo apt-get install -y xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic xvfb x11-apps imagemagick firefox google-chrome-stable
OK, 到这一步都装好了。
二、测试安装
putty连接Ubuntu运行下面命令:
1. 启动Xvfb服务
Xvfb -ac :7 -screen 0 1280x1024x8 (注意这个是x, 不是* 哦)
2. 启动firefox or chrome
export DISPLAY=:7
/usr/bin/google-chrome-stable http://www.investopedia.com //chrome 浏览www.investopedia.com
或者
export DISPLAY=:7
firefox http://www.investopedia.com //firefox 浏览www.investopedia.com
如果运行完后,出现:
Xlib: extension "RANDR" missing on display ":7"
我想说,you made it. 这是个无关紧要的信息,之前我试图解决掉它,没有成功。最后我在运行selenium脚本后,完全没有出现这个信息,脚本执行很正常,所以现在我把它当做是安装成功的信息。
当然运行selenium 脚本前总不能老是敲一遍这些命令,太麻烦了。
弄成一个服务,先 touch /etc/init.d/xvfb
脚本如下:
- #! /bin/bash
- if [ -z "$1" ]; then
- echo "`basename $0` {start|stop}"
- exit
- fi
- case "$1" in
- start)
- /usr/bin/Xvfb :7 -ac -screen 0 1024x768x8 &
- ;;
- stop)
- killall Xvfb
- ;;
- esac
修改脚本权限,启动服务:
chmod +x /etc/init.d/xvfb
chkconfig xvfb on
service xvfb start
停止服务的话就是: service xvfb stop
完毕了。
三、Xvfb在CentsOS安装
- Install Xvfb with library:
- yum install Xvfb
- yum -y install libXfont
- yum install xorg-x11-fonts*
- touch /etc/init.d/xvfb with content:
- #!/bin/bash
- #
- # /etc/rc.d/init.d/xvfbd
- #
- # chkconfig: 345 95 28
- # description: Starts/Stops X Virtual Framebuffer server
- # processname: Xvfb
- #
- . /etc/init.d/functions
- [ "${NETWORKING}" = "no" ] && exit 0
- PROG="Xvfb"
- PROG_OPTIONS=":7 -ac -screen 0 1024x768x24"
- PROG_OUTPUT="/tmp/Xvfb.out"
- case "$1" in
- start)
- echo -n "Starting : X Virtual Frame Buffer "
- $PROG $PROG_OPTIONS>>$PROG_OUTPUT 2>&1 &
- disown -ar
- /bin/usleep 500000
- status Xvfb & >/dev/null && echo_success || echo_failure
- RETVAL=$?
- if [ $RETVAL -eq 0 ]; then
- /bin/touch /var/lock/subsys/Xvfb
- /sbin/pidof -o %PPID -x Xvfb > /var/run/Xvfb.pid
- fi
- echo
- ;;
- stop)
- echo -n "Shutting down : X Virtual Frame Buffer"
- killproc $PROG
- RETVAL=$?
- [ $RETVAL -eq 0 ] && /bin/rm -f /var/lock/subsys/Xvfb /var/run/Xvfb.pid
- echo
- ;;
- restart|reload)
- $0 stop
- $0 start
- RETVAL=$?
- ;;
- status)
- status Xvfb
- RETVAL=$?
- ;;
- *)
- echo $"Usage: $0 (start|stop|restart|reload|status)"
- exit 1
- esac
- exit $RETVAL
- Registering in system and start:
- chmod +x /etc/init.d/xvfb
- chkconfig xvfb on
- service xvfb start
- now
- export DISPLAY=:7 (actually you should add this to your etc/bashrc)
selenium 脚本测试一下环境:
随便丢个简单的selenium 写的脚本到配制好的测试机子上运行,如果没有任何报错,说明环境就是配制Ok的。
参考资料:
http://rrroutes.blogspot.com/2013/04/settup-environment-for-selenium-tests.html
http://www.installationpage.com/selenium/how-to-run-selenium-headless-firefox-in-ubuntu/
http://ralf.schaeftlein.de/2012/05/26/running-headless-webdriver-based-selenium-junit-tests-inside-jenkins-under-ubuntu-linux/
https://gist.github.com/textarcana/5855427
http://stackoverflow.com/questions/17944234/xlib-extension-randr-missing-on-display-21-trying-to-run-headless-googl
XVFB实现selenium在linux上无界面运行安装篇的更多相关文章
- matlab linux下无界面运行
今日做吸引域的仿真,由于需要遍历100*100*100的空间,需要的时间比较长,发现程序没运行一段时间,就会出现Out of memory的错误,而且出错的部分在于截取figure内部图片的部分. 开 ...
- 第三百五十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—chrome谷歌浏览器无界面运行、scrapy-splash、splinter
第三百五十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—chrome谷歌浏览器无界面运行.scrapy-splash. splinter 1.chrome谷歌浏览器无界面运行 chrome ...
- 三十一 Python分布式爬虫打造搜索引擎Scrapy精讲—chrome谷歌浏览器无界面运行、scrapy-splash、splinter
1.chrome谷歌浏览器无界面运行 chrome谷歌浏览器无界面运行,主要运行在Linux系统,windows系统下不支持 chrome谷歌浏览器无界面运行需要一个模块,pyvirtualdispl ...
- centos 无界面 服务器 安装chrome部署chromedriver
转:https://blog.csdn.net/u013849486/article/details/79466359 基本 做完了,要弄进docker里面去了的时候,才搜到 docker-chrom ...
- 在Linux上显示正在运行的进程的线程ID
在Linux上显示正在运行的进程的线程ID 在上Linux," ps -T"可以显示正在运行的进程的线程信息: # ps -T 2739 PID SPID TTY STAT TIM ...
- linux无界面模式安装selenium+chrome+chromedriver并成功完成脚本(亲测可用)
环境:docker centos 7.4 能通外网 写好的selenium脚本. 具体步骤: 一:安装selenium 这是最简单的 直接利用 pip3 install selenium 二 安装c ...
- 无界面运行Jmeter压测脚本 --后知者
原文作者---后知者 原文地址:http://www.cnblogs.com/houzhizhe/p/8119735.html [后知者的故事]:针对单一接口压测时出现了从未遇到的问题,设好并发量后用 ...
- 无界面运行Jmeter压测脚本
今天在针对单一接口压测时出现了从未遇到的问题,设好并发量后用调度器控制脚本的开始和结束,但在脚本应该自动结束时间,脚本却停不下来,手动stop报告就会有error率,卡了我很久很久不能解决,网络上也基 ...
- 在 linux 上部署并运行 JavaFX 项目
环境 redhat 6.4.eclipse安装JavaFX插件 项目详情及代码参见 在linux上配置并创建JavaFX项目 ,该部署即此文章中项目的部署 配置build.fxbuild 生成buil ...
随机推荐
- aria2
在之前我们已经介绍了通过uGet使用aria2来进行下载,但是这样只是使用aria2最简单的功能,现在我们来介绍一下aria2的常用命令 简单篇: 一般使用使用 aria2 下载文件,只需在命令后附加 ...
- 全键盘操作Windows
计算机机用户在使用计算机的时候,是用键盘多一点?还是用鼠标多一点?如果是专业打字员,应该会说他使用键盘多一点,除此之外,多数人都会告诉你,他已经离不开鼠标了,没有鼠标,就不会操作电脑. 如果某一天 ...
- Android Studio 3.0正式版填坑之路
原文:https://www.jianshu.com/p/9b25087a5d7d Android Studio 3.0启动图 序言 总看别人的文章,今天尝试着自己来写一篇.在逛论坛时候,无意间发 ...
- react 15
react 15 最近项目由react0.14.X升级到react 15版本,因为react15还是做了一些相对大一点的更新的(详情可以参考一下我的另一篇文章关于react15的一点总结),相对:来说 ...
- cookie之困
参见http://yun.baidu.com/share/link?shareid=1575530779&uk=1795493794 cookie三元组(name,domain,path),它 ...
- jenkins自动构建部署
环境 centos7 tomcat8.5.37 maven3.3.9 jdk8 git1.8.3.1 安装jdk,tomcat,maven,git(环境变量,配置文件什么的自行百度) ...
- Wireshark数据抓包教程之安装Wireshark
Wireshark数据抓包教程之安装Wireshark 安装Wireshark 通过上一节的学习可以根据自己的操作系统来下载安装Wireshark了.本书中已开发版1.99.7(中文版)为主,下面介绍 ...
- jquery获取系统当前时间
//判断是否在前面加0function getNow(s) { return s < 10 ? '0' + s: s;} var myDate = new Date(); var year=my ...
- Codeforces.1027F.Session in BSU(思路 并查集)
题目链接 \(Description\) 有\(n\)个人都要参加考试,每个人可以在\(ai\)或\(bi\)天考试,同一天不能有两个人考试.求最晚考试的人的时间最早能是多少.无解输出-1. \(So ...
- ZOJ.3551.Bloodsucker(期望DP)
题目链接 \(Description\) 有1个吸血鬼和n-1个人,每天有且只会有两个人/吸血鬼相遇,如果是人与吸血鬼相遇,那个人会有p的概率变成吸血鬼:否则什么也不发生.求n个都变成吸血鬼的期望天数 ...