selenium ubuntu,ubuntu软件安装

如何在无显示器的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/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,只要运行:

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的集成测试。

如何搭建python+selenium自动化测试框架

selenium是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium,相因为它相比QTP有诸多有点:

*免费,也不用再为破解QTP而大伤脑筋

*小巧,对于不同的语言它只是一个包而已,而QTP需要下载安装1个多G的程序。

*这也是最重要的一点,不管你以前更熟悉C、java、ruby、python、或都是C#,你都可以通过selenium完成自动化测试,而QTP只支持VBS

*支持多平台:windows、linux、MAC,支持多浏览器:ie、ff、safari、opera、chrome

*支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能。

关于selenium的基础知识与java平台的结合,我之前写过一个《菜鸟学习自动化测试》系列,最近学python,所以想尝试一下selenium的在python平台如何搭建;还好这方法的文章很容易,在此将搭建步骤整理分享。

搭建平台windows

准备工具如下:

-------------------------------------------------------------

下载python

-------------------------------------------------------------

如果你是新学python,哪果你没有要用的包是必须依赖于pyhton2.x的,那么请毫不犹豫的选择python3.5吧!

window安装步骤:

1、下载python安装。

根据自己的操作系统32/64位,选择相应的版本。

安装过程我就没必要描述,我的安装目录为:C:\Python35

2、进入cmd(windows命令提示符)下面输入"python"命令。

(如果提示python不是内部或外部命令!别急,去配置一下环境变量吧)

修改我的电脑->属性->高级->环境变量->系统变量中的PATH为:

变量名:PATH

变量值:;C:\Python35;C:\Python35\Scripts;

3、安装selenium

3.1、通过pip安装

C:\Users\fnngj>python3-m pip install selenium

3.2、通过下载包安装

或者直接下载selenium包:

解压,cmd进入目录:

C:\selenium\selenium2.53.5> python3 setup.py install

===============================================

ubuntu下安装方式:

1、安装:setuptools

root@fnngj-H24X:~#apt-get install python-setuptools

2、安装pip

root@fnngj-H24X:/home/fnngj/python#tar-zxvf pip-1.4.1.tar.gz

root@fnngj-H24X:/home/fnngj/python#cd pip-1.4.1/

root@fnngj-H24X:/home/fnngj/python#python setup.py install

3、安装selenium

root@fnngj-H24X:/home/fnngj/python/pip-1.4.1#pip install-U selenium

恭喜~!你前期工作已经做了,上面的步骤确实有些繁琐,但是并不难,不过我们已经完成成了,下面体验一下成果吧!拿python网站上的例子:

from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.webdriver.common.keys import Keysimport time

browser= webdriver.Firefox()# Get local session of firefoxbrowser.get("hto.com")# Load pageassert"Yahoo!" in browser.title

elem= browser.find_element_by_name("p")# Find the query boxelem.send_keys("seleniumhq"+ Keys.RETURN)

time.sleep(0.2)# Let the page load, will be added to the APItry:

browser.find_element_by_xpath("//a[contains(@href,'httpmhq.org')]")except NoSuchElementException: assert 0,"can't find seleniumhq"browser.close()

(运行过程中如果出现错误:

WebDriverException:Message:u'UnexpectederrorlaunchingInternetExplorer.

ProtectedModesettingsarenotthesameforallzones.EnableProtectedMo

demustbesettothesamevalue(enabledordisabled)forallzones.'

更改IE的internet选项->安全,将Internet/本地Internet/受信任的站定/受限制的站点中的启用保护模式全部去掉勾,或者全部勾上。)

-----------------------------------------

selenium+python的一份不错文档

===========================如果想通过其它浏览器(IE Chrome)运行脚本=================================

安装Chromedriver

chromedriver的下载地址在这里。

1.下载解压,你会得到一个chromedriver.exe文件(我点开,运行提示startednoprot9515,这是干嘛的?端口9515被占了?中间折腾了半天),后来才知道需要把这家伙放到chrome的安装目录下...\Google\Chrome\Application\,然后设置path环境变量,把chrome的安装目录(我的:C:\ProgramFiles\Google\Chrome\Application),然后再调用运行:

# coding= utf-8from selenium import webdriverdriver= webdriver.Chrome()driver.get('http:om')print driver.title

driver.quit()

又报了个错:

Chromeversionmustbe>=27.0.1453.0\n(Driverinfo:chromedriver=2.0,platform=WindowsNT5.1SP3x86)

说我chrome的版本没有大于27.0.1453.0,这个好办,更新到最新版本即可。

安装IEdriver

在新版本的webdriver中,只有安装了iedriver使用ie进行测试工作。

iedriver的下载地址在这里,记得根据自己机器的操作系统版本来下载相应的driver。

暂时还没尝试,应该和chrome的安装方式类似。

记得配置IE的保护模式

如果要使用webdriver启动IE的话,那么就需要配置IE的保护模式了。

把IE里的保护模式都选上或都勾掉就可以了。

Linux无图形界面环境使用Python+Selenium最佳实践

在Linux无图形界面环境下使用Python与Selenium进行自动化测试或网页数据抓取,是一种常见需求。本文将引导你完成这一过程,包括使用Firefox浏览器以headless模式运行、安装所需工具及编写测试脚本。

Selenium是一个强大的自动化测试工具,能模拟用户操作,如点击、输入文本、验证元素等。它支持多种浏览器/驱动程序,包括Firefox、Chrome、Internet Explorer等,同时也支持远程协议。

若使用Firefox,首先需要安装geckodriver,这是Firefox的驱动程序,用于与Selenium通信。访问geckodriver GitHub页面,下载适合你系统的压缩包,解压并将其可执行文件加入系统PATH变量,或者直接移动到bin目录。

接着安装Firefox浏览器。确保Python环境已准备就绪,并通过pip安装selenium库。

安装Xvfb,这是一种虚拟的X窗口服务器,用于模拟图形界面。在Ubuntu中使用命令sudo apt-get install Xvfb完成安装;CentOS用户则需自行查找相应安装命令。

为了在无图形界面环境下使用Python触发Xvfb,还需安装pyvirtualdisplay库,通过pip安装即可。

编写Python脚本进行自动化测试或网页数据抓取。首先创建虚拟显示,配置Firefox选项为headless模式,然后创建Firefox WebDriver实例进行交互。最后,确保关闭WebDriver和虚拟显示。

运行Python脚本,观察浏览器访问特定页面(如bing搜索)并获取页面标题,同时生成屏幕截图。以headless模式运行Selenium,能实现自动化测试或网页数据抓取,尤其适合Linux云主机环境。通过这些工具的组合,你将获得一个高效、可靠的解决方案。

阅读剩余
THE END