目录
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"]&&exit0PROG="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_OUTPUT2>&1&
disown -ar
/bin/usleep 500000
status Xvfb &>/dev/null && echo_success || echo_failure
RETVAL=$?if[$RETVAL-eq0];then
/bin/touch /var/lock/subsys/Xvfb
/sbin/pidof -o %PPID-x Xvfb > /var/run/Xvfb.pid
fiecho;;
stop)echo-n"Shutting down : X Virtual Frame Buffer"
killproc $PROGRETVAL=$?[$RETVAL-eq0]&& /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)"exit1esacexit$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命令,可以省去设置浏览器地址)
运行及打印结果:
版权归原作者 濤。。。 所有, 如有侵权,请联系我们删除。