如何在无显示器的ubuntu下跑selenium (没有显示)
本文目录导航:
如何在无显示器的ubuntu下跑selenium
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/加入: ppa:mozillateam/firefox-stable 运行以下命令升级或安装Firefox sudo apt-get update sudo apt-get install firefox 运行成功后,ubuntu上就应该安装好最新版本的Firefox了。
安装Xvfb——一个X虚拟框架 这个仿真框架使用虚拟内存能让X-Server运行在没有显示设备的机器上。
这样,浏览器就可以运行了。
在ubuntu和Debian上安装xvfb,只要运行: sudo apt-get install xvfb 现在,可以运行xvfb服务上一个带有数字的显示设备上,这样是为了防止你在下阶段添加设备时引发冲突。
本教程,我们分配一个显示设备 10.. sudo Xvfb :10 -ac -ac代表关闭xvfb的访问控制。
好了,服务器可以运行了。
启动浏览器 在你运行浏览器前,你首先要设置DISPLAY环境变量,以指定xvfb运行在哪个显示设备上。
在加入环境变量前,我们检查一下所有的这些都如我们所料: export DISPLAY=:10 firefox 如果终端(terminal)没有显示错误,就说明你已经成功运行Firefox在无显示设备的ubuntu上了。
它会一直运行,直到你使用ctrl + C或其它类似方法来终止其运行。
同时,它不会有任何输出。
如果你能成功运行以上的步骤,那么接下来的部分就是轻而易举了。
现在,我们可以在ubuntu服务器上运行selenium,如同你在本地运行一样。
本教程的下一部分,我展示了如何运行一个独立selenium服务器,同时使用PHP的selenium webdriver去连接。
小结 很久以前,我也使用selenium做自动化的集成测试,使用HtmlUnit的webdriver,所以不需要显示器。
但是HtmlUnit的表现总是有些不如意。
而最近在项目中发现这篇文章,解决我长久以来的问题:在没有显示器的服务器上运行Firefox的集成测试。
本地离线安装selenium超详细教程
作为测试专家芸芸,我是一位北漂女程序员,业余时间热衷于古筝。
在某些特定情况下,离线安装Selenium成为了我们的必要任务。
经过数小时的专注努力,我成功完成了本地离线安装的过程。
现在,我将直接分享操作步骤,以帮助你顺利实现这一目标:
操作步骤如下:
在简书平台,我承诺每日更新,这是第83篇,我致力于连续创作365天。
至今,我已累计发布超过36万字的内容,期待这些步骤能帮到有需要的朋友们。
2024年了,为何 Selenium 依然这么火?
自动化测试框架Selenium为何依然如此受欢迎?本文将深入探讨Selenium的过去、现在与未来,以及其在软件测试领域的核心地位。
Selenium的起源可以追溯到2004年,Jason Huggins创建了JavaScriptTestRunner,旨在解放从重复手动测试中。
这一工具直接在浏览器中执行测试,驱动页面交互,无需手动操作即可重复运行。
随着Selenium的流行,Huggins将其开源并更名为Selenium Remote Control。
其创新之处在于,Selenium成为首个允许测试人员使用自选编程语言与浏览器对话的工具。
然而,随着浏览器对JavaScript的限制,限制了工具的全部功能。
谷歌成为Selenium的忠实用户,工程师们在处理限制时,Simon Stewart研发了与浏览器本地对话的工具,即WebDriver。
Selenium与WebDriver的结合,彻底改变了软件测试的方式。
在GitHub上,Selenium获得了超过26.3k的star、7.5k的fork、195k以上的项目依赖,以及670+的代码贡献者,NPM周下载量达到1764K,使其成为前端自动化测试领域的领导者。
Selenium的系列产品包括Selenium Remote Control(现在称为Selenium 1)和Selenium 2,以及Selenium 3和4。
从Selenium 3开始,Selenium RC被标记为遗留包,支持的浏览器列表和移动测试功能得到扩展。
Selenium 4引入了期待已久的新功能,如相对定位器、从JSON Wire Protocol到WebDriver W3C协议的转换以及Chrome调试功能。
Selenium WebDriver(Selenium 4)是用于Web应用程序的自动化测试工具,提供友好的API。
它不依赖于任何测试框架,除了必要的浏览器驱动。
Selenium Webdriver通过各种浏览器驱动来驱动浏览器操作,成功后返回一个WebDriver实例对象,通过其方法控制浏览器,如定位元素并进行操作。
Selenium IDE是一个Chrome、Firefox和Edge插件,用于创建快速错误重现脚本或自动化辅助探索性测试。
许多官方和非官方插件允许开发者构建生产就绪的工具,适合那些觉得Selenium WebDriver学习曲线陡峭的公司。
Selenium Grid允许开发者在多台机器上并行运行测试,简化了针对大量浏览器/操作系统组合的测试过程。
这节省了时间,只需花费大约四分之一的时间运行100个测试,同时提供了端到端测试(E2E)的功能,确保整个应用程序流程正常运行。
Selenium提供了丰富的示例和工具,如Builder类,用于配置新WebDriver实例,并与目标浏览器无关的选项。
配置与目标浏览器无关的选项是通过SELENIUM_BROWSER环境变量在运行时更改的。
Selenium的优点包括免费、与敏捷、DevOps、持续交付工作流集成、支持移动测试、广泛的语言支持、平台和浏览器、庞大的社区、丰富的插件和扩展库。
它的社区和市场占有率表明其在自动化测试领域的领先地位。
尽管Selenium在学习曲线、仅适用于网络应用程序、缺少内置图像比较和报告功能方面存在缺点,但它仍然在自动化测试领域占据主导地位。
随着技术的发展,Selenium不断进化以满足用户需求,包括支持更广泛的测试场景、提供更友好的用户界面和增强的报告功能。
文章评论