2019独角兽企业重金招聘Python工程师标准>>>

如何在无显示器的ubuntu下跑selenium 博客分类: java

Selenium是一个web自动化测试框架。用它可以实现web应用自动化测试。不过,我不只是用它来做测试,我还用它从电子商务网站签到页面爬取javascript生成的或AJAX的内容。

作为程序员,我不满足于使用Selenium IDE来记录和重放宏记录。那样很蹩脚,而且不适合部署到多台服务器。这时,你需要Selenium WebDriver,它又灵活,而且通过Selenium headless,运行Selenium在服务器上不需要显示设备。

为什么要运行Headless Selenium 测试?

当你希望能在服务器上运行的健壮的自动化操作,而其操作又依赖于 27X7,同时还希望它是稳定的,这时,Selenium是你唯一的选择。但是,Selenium需要运行在浏览器上。所以,你得骗Selenium,让它觉得,它正跑在一台带有显示器的机器上。这样,你就可以不间断的跑自动化测试,同时又不失稳定性和扩展性。

如何在ubuntu上运行Selenium headless

本教程的目标是在使用Mozilla Firefox作为主浏览器的ubuntu上配置和运行selenium headless。

安装Firefox headless

确认你的ubuntu安装的是最新版本的Firefox。我遇到过Selenium的版本和Firefox的版本不兼容问题。如果你没有安装Firefox或者使用的是老版本的Firefox,可按以下步骤升级Firefox:

在/etc/apt/sources.list加入:

ppa:mozillateam/firefox-stable

运行以下命令升级或安装Firefox

sudo apt-get update

sudo apt-get install firefox

运行成功后,ubuntu上就应该安装好最新版本的Firefox了。

安装Xvfb——一个X虚拟框架

这个仿真框架使用虚拟内存能让X-Server运行在没有显示设备的机器上。这样,浏览器就可以运行了。在ubuntu和Debian上安装xvfb,只要运行:

  1. sudo apt-get install xvfb

现在,可以运行xvfb服务上一个带有数字的显示设备上,这样是为了防止你在下阶段添加设备时引发冲突。本教程,我们分配一个显示设备 10..

  1. sudo Xvfb :10 -ac

-ac代表关闭xvfb的访问控制。好了,服务器可以运行了。

启动浏览器

在你运行浏览器前,你首先要设置DISPLAY环境变量,以指定xvfb运行在哪个显示设备上。在加入环境变量前,我们检查一下所有的这些都如我们所料:

  1. export DISPLAY=:10
  2. firefox

如果终端(terminal)没有显示错误,就说明你已经成功运行Firefox在无显示设备的ubuntu上了。它会一直运行,直到你使用ctrl + C或其它类似方法来终止其运行。同时,它不会有任何输出。

如果你能成功运行以上的步骤,那么接下来的部分就是轻而易举了。现在,我们可以在ubuntu服务器上运行selenium,如同你在本地运行一样。本教程的下一部分,我展示了如何运行一个独立selenium服务器,同时使用PHP的selenium webdriver去连接。

小结

很久以前,我也使用selenium做自动化的集成测试,使用HtmlUnit的webdriver,所以不需要显示器。但是HtmlUnit的表现总是有些不如意。而最近在项目中发现这篇文章,解决我长久以来的问题:在没有显示器的服务器上运行Firefox的集成测试。

而本文,我更多尝试的是意译。有不对的地方,谢谢斧正!

英文原文:http://www.installationpage.com/selenium/how-to-run-selenium-headless-firefox-in-ubuntu/

译文链接:http://my.oschina.net/zjzhai/blog/295288

转发:http://os.51cto.com/art/201407/446726.htm

转载于:https://my.oschina.net/xiaominmin/blog/1597933

如何在无显示器的ubuntu下跑selenium相关推荐

  1. 如何在无显示器的ubuntu下跑前端测试

    2019独角兽企业重金招聘Python工程师标准>>> 翻译自:http://www.installationpage.com/selenium/how-to-run-seleniu ...

  2. Ubuntu下跑通py-faster-rcnn、详解demo运作流程

    在不同的服务器不同的机器上做过很多次实验,分别遇到各种不一样的错误并且跑通Py-Faster-RCNN,因此,在这里做一个流程的汇总: 一.下载文件: 首先,文件的下载可以有两种途径: 1.需要在官网 ...

  3. 树莓派教程(1)——手把手教你在无显示器的情况下使用树莓派

    树莓派无显示器安装教程 1.材料准备 2.树莓派简介 3.树莓派装机 3.1.树莓派系统下载 3.2.格式化SD卡 3.3.修复zip 3.4.烧录系统 4.配置WiFi 5.启动树莓派 5.1.获取 ...

  4. ubuntu下跑魔兽世界

    游戏环境:ubuntu 6.06 p4 2.4g 726m scim输入法 nvidia mx 440 wine 9.21 1.安装显卡驱动(不是基于debian的发行版请去相关网站查询下怎么安装显卡 ...

  5. 小觅深度版Ubuntu下跑vins-mono

    最近实验室新买了小觅深度版相机(型号D1000-IR-120/Color),这里记录一下跑vins-mono的过程.由于虚拟机usb可能出现不兼容问题,我使用的是双系统的Ubuntu16.04,对应R ...

  6. Ubuntu下的Selenium爬虫的配置

    在服务器Ubuntu系统上跑爬虫,爬虫是基于Selenium写的,遇到好几个问题,现在这里记录一下. 1. 安装环境 阿里云,Ubuntu16.04,因为没有界面,所以远程命令行操作.爬虫是基于Sel ...

  7. [How TO]-ubuntu下安装selenium

    环境:window10宿主机+ virtualbox + ubuntu20.10虚拟机 1.安装火狐浏览器 下载firefox版本:firefox-52.0.2.linux-x86_64.sdk.ta ...

  8. 装不了 pytorch=0.4.0? ubuntu下 基于 cuda=92 和 pytorch=1.2 配置环境跑通 CornerNet 训练和测试流程 步骤详解(包括GPU限制问题详解)

    ubuntu下跑通CornerNet的流程步骤 环境配置 写这篇博客原因? 更改conda_packagelist.txt conda下基于conda_packagelist.txt创建新环境 安装p ...

  9. Ubuntu下无脑跑通yolov5目标检测与跟踪(Pycharm+Pytorch1.7.1+Cuda10.1)

    此文章记录如何在ubuntu下部署yolov5网络,并训练自己的数据集 环境:ubuntu16.04+Pycharm+Pytorch1.7.1+Cuda10.1 具体如何在ubuntu下配置深度学习环 ...

最新文章

  1. javaweb学习总结(六)——Servlet开发(二)
  2. 模型预测控制 索引超出数组元素的数目(0)。_C++基础总结(二):C++基本数据类型及流控制语句详解...
  3. 【新书速递】你想知道的通信“灵魂三问”都在这里……(福利再现)
  4. TensorFlow 笔记 (五)自定义训练: 演示
  5. Chrome浏览器扩展开发系列之一:初识Google Chrome扩展
  6. 动态规划____编辑距离
  7. Python build-in数据类型之字符串str (一)
  8. mysql-cluster5.7搭建集群(实际测试有效)
  9. python判断闰年_python如何判断闰年
  10. 【rzxt】笔者支招:电脑的散热大户显卡温度过高如何解决
  11. 股票中什么是总负债同比增长率,有什么作用
  12. 云环境下搭建FTP服务器(不使用21端口)
  13. 【教育教学资源】教育资讯、教学功能、当老师、或者补习班给学生的资料
  14. 关闭2345,搜狐等软件的弹窗
  15. 「Adobe国际认证」运用“对象选择”工具,在PS中快速建立选区
  16. windows主机加固(2)
  17. canal 记录 数据变更类型 QUERY ROWDATA INSERT xxx XXXXX
  18. 最新爆料!RK3588 适配 OpenHarmony 的新进展
  19. 闲聊Android工程师的职业规划
  20. 一加手机便签卸载了,怎么恢复没有备份的内容?

热门文章

  1. 理解基本包装类型Number,String,Boolean
  2. sqlserver08评估期已过的解决方法
  3. flex if(a is b){},flex if(a as b){} 意思
  4. 基于WebMatrix的轻量级Web开发系列课程
  5. 如何进行需求矩阵管理
  6. oralcle中的性能统计基本用法statpack
  7. Sharding-Sphere_分库分表小结和问题_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记005
  8. ES6新特性_ES6模板字符串---JavaScript_ECMAScript_ES6-ES11新特性工作笔记007
  9. Netty工作笔记0005---NIO介绍说明
  10. C#.Net工作笔记012---c# 文件操作_文件路径操作_随时更新