【问题标题】:Selenium and Headless Environment硒和无头环境
【发布时间】:2011-05-19 03:42:45
【问题描述】:

我最近在 Red Hat 服务器上安装了 Python 2.7、Robot Framework 和 Selenium 库(我仍然不知道是否成功...),以便在 Web 应用程序上运行一些测试。

所以我尝试了一个使用 Robot Framework 的简单测试用例,看看 Selenium 库是否正常工作,只是为了打开一个网页,仅此而已......

根据 ps 的结果,Selenium Server 已启动并运行,Firefox 二进制文件在 PATH 中...

从机器人框架运行测试用例(使用 pybot testcasename.tsv)我得到一个异常:

错误:将屏幕截图捕获到字符串时出现问题:java.awt.AWTException:无头环境

那么,什么是无头环境?有没有人知道是否还有其他需要安装或配置的东西?

【问题讨论】:

  • 对于多年后关注这一点的每个人:现在有一些可编写脚本的无头浏览器。最受欢迎的可能是 PhantomJS:phantomjs.org

标签: exception selenium environment headless robotframework


【解决方案1】:

使用 X 虚拟帧缓冲区 (Xvfb):

我们可以使用 xvfb 为 selenium 创建一个无头环境(例如,通过 SSH 运行)。


说明:

  1. 使用以下选项启动xvfb

    $ Xvfb :89 -ac -noreset

    (其中:89 是创建的虚拟“显示”)。

  2. 然后,将DISPLAY 变量设置为这个虚拟显示器:

    $ export DISPLAY=:89

  3. 此时,我们可以根据需要运行 selenium 服务器。示例如下。

运行服务器 Java 存档:

$ java -jar selenium-server.jar

在 Python 中:

from selenium import webdriver

driver = webdriver.Firefox()
...

【讨论】:

  • 你是个天才!谢谢, -ac -noreset 也解决了我的问题。现在我需要弄清楚,为什么 Firefox 在我的构建机器上没有任何字体.. 嗯。
  • 另外:我发现github.com/jordansissel/xdotool/blob/master/t/ephemeral-x.sh 在处理启动/停止 X 服务器和并行构建时非常方便。
【解决方案2】:

a simple Robot library 就是为了这个目的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    • 2013-07-30
    相关资源
    最近更新 更多