Web UI自动化(ubuntu系统,python3.6)

在ubuntu系统中搭建python3.6.4+selenium+chrome,实现无界面上运行web前端自动化测试

一、ubuntu系统16.04自带了python2.7和python3.5 ,需要安装python3.6.4步骤:

1、使用 wget 命令下载 Python3.6.4 安装包:wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz

2、使用 tar 命令对 Python3.6.4 进行解压:tar zxvf Python-3.6.4.tgz

3、进入 Python-3.6.4 目录:cd Python-3.6.4

4、编译安装,执行 ./configure 脚本:./configure

5、执行安装:make make install

安装完成后使用python3.6 检查是否安装成功,然后使用pip3.6 install selenium 如果能正常安装,说明python3.6 安装完成

如果pip安装失败, 提示:pip is configured with locations that require TLS/SSL .......

1.在使用pip的时候需要ssl,通过命令先安装openssl 和 libssl-dev:apt-get install openssl apt-get install libssl-dev

2.cd Python-3.6.4

3.修改Modules/Setup

vim Modules/Setup
#修改结果如下:
# Socket module helper for socket(2)
_socket socketmodule.c timemodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto

4.再次进行 ./configure --with-ssl

5.执行安装:make make install

二、安装Chrome

下载命令行chrome: wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

通过命令安装: sudo dpkg -i google-chrome-stable_current_amd64.deb

也可参考其他方式进行安装

三、安装Chromedriver

在这里 找到自己需要的chromedrive (匹配Chrome版本)

解压后,传入ubuntu系统中

配置chromedriver为可执行,参考如下:

sudo mv -f chromedriver /usr/local/share/chromedriver

sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver

sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver

进入到/usr/bin 目录下 find chromedriver 是否存在

不存在 sudo mv chromedriver /usr/bin 将文件移到这个目录下

修改chromedriver的权限 sudo chmod a+x chromedriver

四、安装Xvfb(可参考这里)

使用 命令安装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

测试是否安装成功:

1、启动Xvfb服务 : Xvfb -ac :7 -screen 0 1280x1024x8 (注意这个是x, 不是* 哦)

2、export DISPLAY=:7

/usr/bin/google-chrome-stable http://www.mimvp.com // chrome 浏览www.mimvp.com

如果运行完后,出现:

Xlib: extension "RANDR" missing on display ":7"

you made it. 这是个无关紧要的信息,之前我试图解决掉它,没有成功。最后我在运行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

五、测试脚本

通过命令先安装pyvirtualdisplay:sudo pip install pyvirtualdisplay

脚本参考如下:

from pyvirtualdisplay import Display
from selenium import webdriver
import time
display = Display(visible=0, size=(1024, 768))
display.start()
driver = webdriver.Chrome()
time.sleep(1)
driver.get(‘http://www.baidu.com‘)
time.sleep(10)
print (driver.page_source)
driver.save_screenshot(‘/home/test/test.png‘)
time.sleep(2)
driver.close()
driver.quit()
display.stop()
使用python3.6 +脚本文件名,运行脚本

相关推荐