前言:
今天咱们对“centosfirfox”可能比较重视,咱们都想要剖析一些“centosfirfox”的相关文章。那么小编同时在网上网罗了一些有关“centosfirfox””的相关资讯,希望大家能喜欢,兄弟们快快来学习一下吧!一、搭建Python环境
1、查看Linux中Python的版本,可以用python 或者python -V查看,因为我们得项目大多使用Python3.x,所以要安装一个Python3的版本‘
2、下载并解压Python3.x
cd /opt/soft
执行 wget 下载Python3.6.5
tar -zxvf Python-3.6.5.tgz 解压到当前目录
3、安装Python3.6.5
进入解压后的Python-3.6.5 文件夹, cd Python-3.6.5
以此执行
./configure
如果执行报错:configure: error: no acceptable C compiler found in $PATH,说明没有安装合适的编译器。这时,需要安装/升级 gcc 及其它依赖包。
安装完成再次执行 ./ configure
make
make install
经过漫长的等待,安装完成后,执行python3 -V命令检查是否安装成功
4、将Python3.x设置为默认版本
查看当前python指向的连接,ls -al /usr/bin | grep python
可以看到如果执行python命令,指向的是python2.7版本
所以,如果要将默认版本设置为3.x我们就要将原来 python 的软链接重命名:
执行mv /usr/bin/python /usr/bin/python.bak
再将python命令指向python3:ln -s /usr/local/bin/python3 /usr/bin/python
这个时候再查看python的版本:python -V
5、如果升级完3.x,记得把yum的配置文件:
/usr/libexec/urlgrabber-ext-down 和 /usr/bin/yum 中的#!/usr/bin/python 改为 #!/usr/bin/python2.7即可。
二、安装selenium
由于目前系统中默认的Python版本为3.x,所以直接执行pip 安装命令即可安装项目中需要的扩展库。
1、查看pip版本,pip -V,如果版本低于18,执行pip install --upgrade pip 升级pip版本
如果遇到ssl问题,执行rpm -aq|grep openssl查看是否有openssl-devel文件,如没有yum install openssl-devel -y安装 ,安装成功后,修改vi /opt/soft/Python-3.6.5/Modules/Setup,增加
#_codecs_cn cjkcodecs/_codecs_cn.c
#_codecs_hk cjkcodecs/_codecs_hk.c
#_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
#_codecs_jp cjkcodecs/_codecs_jp.c
#_codecs_kr cjkcodecs/_codecs_kr.c
#_codecs_tw cjkcodecs/_codecs_tw.c
# Example -- included for reference only:
# xx xxmodule.c
# Another example -- the 'xxsubtype' module shows C-level subtyping in action
xxsubtype xxsubtype.c
# 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
保存并退出后,重新安装Python:
cd /opt/soft/Python-3.6.5
make
make install
这时候在执行pip安装就可以了。
2、安装selenium
执行 pip install selenium 默认安装最新版本
三、启动项目遇到的问题
1、初始化driver没有指定Firefox驱动的路径
2、火狐浏览器版本与驱动不一致
查看:chromedriver与chrome版本对应表,firefox、geckodriver
3、火狐版本不是最新的:
直接yum 安装:yum install firefox
4、
Q:selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status: 1
A:This error can come up when you are trying to run the browser in non-headless mode on a box that doesn't have a display (like an Ubuntu server).
查看运行目录的cat geckodriver.log火狐驱动日志
由于服务器没有图形界面,导致无法启动浏览器,尴尬,接下来就要解决图形界面的问题了,未完待续……
分割线###################################################################################
后续来了
本地UI自动化项目如何放到服务器上利用Jenkins定时执行呢?
百度了一下,有两种方案,一是PhantomJS,而是让前者失业的Chrome headless mode。
PhantomJS 是一个基于WebKit 的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准:DOM 处理、CSS 选择器、SON、Canvas、和 SVG。PhantomJS可以用于页面自动化、网络监测、网页截屏以及无界面测试 等。
PhantomJS 最近被selenium放弃了,Chrome headless mode完全和有界面的Chrome一样,可以完美的替代Chrome。
一、选择无界面模式
那我们将项目部署到改如何选择呢?我分别尝试了两种模式。
1.第一次尝试用Chrome headless mode。
在本地调试成功,代码很简单:
opt = webdriver.ChromeOptions()
opt.add_argument('--headless')
opt.add_argument("--window-size=1920,1080")
driver = webdriver.Chrome(executable_path='./chromedriver', chrome_options=opt)
webdriver.ChromeOptions是谷歌专门做的headless mode驱动,可以代替Chrome,
一般情况下,我们调用谷歌浏览器只需要
driver = webdriver.Chrome(executable_path='./chromedriver')即可,区别在于增加了一个chrome_options参数,传入opt = webdriver.ChromeOptions()即调用headless mode。
本地运行项目,执行case成功,下一步把代码迁移到服务器,修改executable_path为服务器上驱动的路径,执行项目,需要在Linux服务器上安装Chrome,由于公司服务器都是centos,所以不好安装指定版本的Chrome,所以放弃……
2.尝试PhantomJS
直接将webdriver.PhantomJS()当做一种浏览器使用,类似webdriver.Firefox(),webdriver.Chrome();
其中executable_path为PhantomJS驱动的路径。
driver = webdriver.PhantomJS(executable_path='phantomjs-2.1.1/bin/phantomjs')
本地运行项目,执行case成功。同样下一步把代码迁移到服务器,执行case,完美成功,
需要注意的一点是,页面加载可能不如本地快,所以有必要加一些等待时间来给页面加载。
所以要在服务器做无界面UI自动化测试,PhantomJS无疑是最简单的,也是依赖少的。
Jenkins上新建任务,AutoTest,设置git路径和账号密码。
二、Jenkins执行服务器UI自动化测试项目
增加构建Excute shell如下:
ssh root@IP "rm -rf /home/webapp/WebUI/Settle/*"
scp -r /root/.jenkins/workspace/settleWebUI/* root@IP:/home/webapp/WebUI/Settle
ssh root@IP "cd /home/webapp/WebUI/Settle&&python run_settle_all_test.py"
执行任务即可
二、遇到的问题
1.问题:服务器运行case,截图乱码
解决:由于服务器字体库,执行yum install bitmap-fonts bitmap-fonts-cjk即可
未完待续
标签: #centosfirfox #centosfirefox无法启动 #centos7安装谷歌浏览器打不开 #centos安装最新版火狐 #yum安装火狐