Selenium是一个Web自动化测试框架。它可用于自动化Web应用程序的测试。但是,我不只是将它用于测试,我还使用它从电子商务网站签到页面中抓取javascript生成的或AJAX内容。作为一名程序员,我并不满足于使用SeleniumIDE来录制和重放宏记录。这很蹩脚,而且不适合部署到多个服务器。这时候就需要SeleniumWebDriver,它是灵活的,通过Seleniumheadless,不需要显示设备就可以在服务器上运行Selenium。为什么要运行HeadlessSelenium测试?当您想要可以在服务器上运行的健壮的自动化操作,并且它的操作依赖于27X7,并且您还希望它稳定时,Selenium是您唯一的选择。但是,Selenium需要在浏览器上运行。因此,您必须欺骗Selenium,使其认为它在带有监视器的机器上运行。这样,您就可以不间断地运行自动化测试,而不会失去稳定性和可扩展性。如何在ubuntu上运行Seleniumheadless本教程的目标是在以MozillaFirefox作为主要浏览器的ubuntu上配置和运行seleniumheadless。安装Firefoxheadless确保你的ubuntu安装了最新版本的Firefox。我遇到过Selenium和Firefox版本不兼容的问题。如果你没有安装Firefox或使用的是旧版本的Firefox,你可以通过以下方式升级Firefox:在/etc/apt/sources.list中添加:ppa:mozillateam/firefox-stable运行以下命令升级或安装Firefoxsudoapt-getupdatesudoapt-getinstallfirefox运行成功后,ubuntu上应该安装了最新版本的Firefox。安装Xvfb-一个X虚拟框架这个仿真框架使用虚拟内存来允许X-Server在没有显示设备的机器上运行。这样,浏览器就可以运行了。在ubuntu和Debian上安装xvfb只需要运行:sudoapt-getinstallxvfb现在,你可以在一个有编号的显示设备上运行xvfb服务,这是为了防止你在下一阶段添加设备时发生冲突。在本教程中,我们分配一个显示设备10..sudoXvfb:10-ac-ac表示关闭xvfb的访问控制。好的,服务器已准备好运行。启动浏览器在运行浏览器之前,首先需要设置DISPLAY环境变量以指定xvfb运行在哪个显示设备上。在添加环境变量之前,让我们检查一下是否所有这些都符合预期:exportDISPLAY=:10firefox如果终端(terminal)没有显示错误,则说明你已经成功在没有显示设备的ubuntu上运行Firefox。它会一直运行,直到你用ctrl+C或类似的东西终止它。此外,它不会有任何输出。如果您可以成功运行上述步骤,那么接下来的部分就轻而易举了。现在,我们可以像在本地运行它一样在ubuntu服务器上运行selenium。在本教程的下一部分中,我将展示如何运行独立的selenium服务器并使用PHP的seleniumwebdriver连接到它。总结很久以前,我也是用selenium做自动化集成测试,用的是HtmlUnit的webdriver,所以不需要显示。但是HtmlUnit的性能总是有些不尽如人意。而最近在项目中发现这篇文章解决了我长期存在的问题:在没有显示器的服务器上运行Firefox集成测试。在这篇文章中,我尝试翻译更多。有不对的地方,谢谢指正!英文原文:https://img.ydisp.cn/news/20220809/3s1k5sucx4u翻译链接:http://my.oschina.net/zjzhai/blog/295288
