目录
- 0、应用
- 1、linux安装
- 1.1 安装chromium
- 1.2 安装chromedriver
- 1.3 安装xvfb
- 2、java maven依赖
- selenium依赖
- 3、入门案例
0、应用
前一段时间,需要实现一个模拟页面操作的功能,去检测程序运行是否稳定,因此就用到了web自动化检测的功能。
1、实现该功能,首先需要一个浏览器(firefox,chrome),
2、然后需要一个操作浏览器的驱动程序,需与浏览器相对应(geckodriver,chromedriver)
3、之后便是我们在程序中使用的测试工具(selenium)
4、因为在linux中进行操作,所以需要一个虚拟的Xserver(Xvfb)来进行桌面的模拟。
因为在centos进行操作,最开始使用了firefox+geckodriver,但最终实现一直不稳定(可能是版本问题),换成了chromium+chromedriver。
1、linux安装
1.1 安装chromium
1、下载rpm文件
下载地址:https://pkgs.org/download/chromium
找到下边的centos7,即可获取链接,点击进去向下拉,找到download
利用wget进行下载
2、下载完成后,通过yum下载chromium
yum localinstall ./chromium-[刚下载的rpm版本号].rpm
1.2 安装chromedriver
下载地址:http://chromedriver.storage.googleapis.com/index.html
找到与下载的chromium相对应的版本,或者最紧邻的版本
1.3 安装xvfb
1、利用yum下载软件
yum install xorg-x11-server-Xvfb bzip gtk3
2、编写Xvfb执行脚本,使更方便对其执行进行控制
touch /etc/init.d/xvfb
vi /etc/init.d/xvfb
(将下边内容粘贴进去)
#!/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
3、开启Xvfb需要设置环境变量,可以添加在/etc/profile下,也可以先设置临时的
export DISPLAY=:7
4、将文件变为可执行文件,并执行
cd /etc/init.d/
chmod 777 ./ xvfb
./xvfb start
./xvfb status
5、测试,此时我们便可以使用浏览器进行访问网页
chromium-browser -headless --no-sandbox http://www.baidu.com
或者
/usr/bin/chromium-browser -headless --no-sandbox http://www.baidu.com
打印出来一堆信息,说明安装成功,
2、java maven依赖
selenium依赖
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
3、入门案例
放入自己的浏览器地址以及驱动
(如果可以直接,用chromium-browser命令,可以省去设置浏览器地址)
运行及打印结果: