Linux配置Selenium+Chrome+Python实现自动化测试

以下流程在Ubuntu(16.04)LTS测试通过

1.安装chrome

sudo apt-get install libxss1 libappindicator1 libindicator7
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb

如果上面运行
sudo dpkg -i google-chrome*.deb命令之后报错,使用如下命令修复一下:
sudo apt-get install -f,之后再次运行sudo dpkg -i google-chrome*.deb命令就可以了

安装后确认/usr/bin目录下是否有google-chrome文件

2.安装python、安装Selenium、安装requests(可选)

sudo apt-get install python-pip
sudo pip install selenium
#requests模块,可选安装
sudo pip install requests

3.安装chromedriver

建议安装最新版本的chromedriver,下载页面:
http://chromedriver.storage.googleapis.com/index.html

在这个页面里列出了chromedriver的各个版本,我们选择目前最新的版本(2.29),使用命令行安装:

wget -N http://chromedriver.storage.googleapis.com/2.29/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
chmod +x 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目录下是否有chromedriver文件

由于时效性,在安装时应当先去网站查看最新版本,然后替换命令行中的2.29版本信息

4.简单示例

这时候就可以在图形界面的终端运行python自动化测试脚本了。
示例脚本,打开网址并截图:

#coding:utf-8
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://zhaoyabei.github.io/")
driver.save_screenshot(driver.title+".png")

可以看到chrome启动并加载了网址,桌面生成了截图。

5.字符界面运行

如果想要在字符界面使用Chrome进行测试,需要使用工具Xvfb.

X Virtual Framebuffer(Xvfb)虚拟帧缓冲器,简单来说它可以直接处理 Window的图形化功能,并且不会输出到屏幕上,这就摆脱了对可视窗口的依赖

sudo apt-get -y install xvfb gtk2-engines-pixbuf
sudo apt-get -y install xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable
# 截图功能,可选
sudo apt-get -y install imagemagick x11-apps
Xvfb -ac :99 -screen 0 1280x1024x16 & export DISPLAY=:99

运行测试脚本,输出网页标题:

#coding:utf-8
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://github.com/")
print driver.title

可以看到输出了网页的标题

Tips

以上步骤有可能因网络原因失败,出现问题时要淡定