问题标签 [xvfb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1452 浏览

php - PHP 和 Xvfb 的使用

我正在尝试在无头服务器上执行 Firefox 以截取网站的屏幕截图。我可以从终端使用

“DISPLAY=:12 firefox -saveimage http://www.google.com/ ”。

问题是当我尝试做 system("DISPLAY=:12 firefox -saveimage http://www.google.com "); 不起作用。我有一种感觉,它没有在正常的 shell 环境中执行。我违背了我更好的判断,给了 apache 用户一个实际的 shell。如果我 su 到 apache 并执行命令,一切都很好并且按预期工作,但它再次不能通过系统调用工作。任何见解都非常受欢迎。

0 投票
2 回答
2691 浏览

python - 如何使用 Python 中的 subprocess 模块启动和停止 Linux 程序?

我正在编写一个使用 Selenium 对另一个网站进行屏幕抓取的网络应用程序。这种屏幕抓取每天只发生一次,所以我宁愿不要让 Selenium 和 Xvfb 一直运行。

我试图弄清楚如何从 Python 启动 Xvfb 和 Selenium,然后在屏幕抓取完成后停止它们。

如果我是手动操作,我会在命令行启动它们,然后点击CTRL C停止它们。我正在尝试从 Python 做同样的事情。

我似乎能够像这样成功启动 Xvfb:

但是当我试图终止它时:

然后尝试再次启动它(通过重复我的初始命令),它告诉我它已经在运行。

0 投票
1 回答
480 浏览

firefox - 如何禁用 Firefox 中的任何服务窗口?

我在 xvfb 下运行 Firefox 并从中获取网页截图。

是否有任何简单而强大的方法来禁用可能破坏我的屏幕截图的任何可能的请求或窗口?比如更新请求、安全问题等等。

0 投票
1 回答
1052 浏览

flash - flash player 在 xvfb 下不工作

Flash 播放器无法在 XVFB 下使用 selenium 运行的 firefox (centos 5.5 x64) 中运行。我只是在应该可以看到闪光灯的地方出现黑屏。

尝试了 32 和 64 版本。

你有什么建议吗?

0 投票
4 回答
23463 浏览

pdf-generation - wkhtmltopdf 命令失败

我正在尝试使用将 HTML 文件转换为 PDF wkhtmltopdf

为此,我在 Debian 机器上安装了 wkhtmltopdf 并尝试运行以下命令:

我收到以下错误:

该文件确实存在于 中/path/convert.1303714349.4961.html.tmp,并且权限设置正确。它与前面的路径有什么关系file://吗?

0 投票
3 回答
4844 浏览

ruby - 在 Xvfb 中以非 root 用户身份从 ruby​​ 运行 Selenium::WebDriver::Firefox

我正在尝试使用 ruby​​ 脚本进行一些无头测试。本质上,我在 display:1 上执行 Xvfb,然后Watir::Browser.new(:firefox)使用 watir-webdriver 启动。

如果您以 root 身份运行脚本,这将非常有用——我可以运行 x11vnc 并观察脚本执行浏览器并与之交互。

问题是,我需要能够从 Rails 应用程序调用这个 ruby​​ 脚本,而不是以 root 身份运行它...如果我尝试以普通用户身份从命令行运行脚本,Xvfb 会在 :1 上启动像往常一样,但 Watir 不会启动浏览器......它最终会在 60 秒后超时。通过 VNC 连接显示带有鼠标光标的黑屏。

我可以从命令行做很多事情——启动 Xvfb,然后启动firefox --display=:1浏览器,所以它一定是 Selenium 问题,对吧?

简而言之:除非我以 root 身份运行脚本,否则 Selenium/Webdriver 拒绝在 Xvfb 中启动浏览器。

0 投票
2 回答
4323 浏览

debian - wkhtmltopdf 在没有 X-server 的 Debian 上非常慢

对于我的测试环境(Windows 7),将一个非常小的 HTML 文件转换为 PDF 需要 2 秒。在生产 Web 服务器上,相同的文件 (Debian) 需要 193 秒。

Web 服务器正在使用托管托管解决方案运行。他们安装了 wkhtmltopdf 并告诉我必须使用 xvfb-run 才能工作:

现在我已经抱怨使用这个命令生成一个简单的 PDF 需要 193 秒,他们说他们对此无能为力。真的是这样吗?

编辑:不知何故,我的托管主机支持在一些轻推后解决了这个问题(现在需要 0.8 秒)。我认为他们可能已经重新编译了静态 wkhtmltopdf 二进制文件或其他东西。我现在在没有 xvfb-run 的情况下运行 wkhtmltopdf。

0 投票
1 回答
1401 浏览

node.js - NodeJS 包来处理具有类似硒网格功能的 Linux 盒子上的并行无头测试?

我需要处理在 selenium 独立服务器上运行并行测试的经过身份验证的多个用户,并在 nodejs 上发现了两个 webdriver 客户端。有webdriver-jswd-js。哪个更主动、更可靠?有什么经验吗?当节点或硒更新或删除功能时,我有点担心它们会崩溃。

我认为这些软件包中的任何一个都没有提到在每次测试的唯一显示编号上自动启动 Xvfb。那么在驱动浏览器之前启动shell命令来运行xvfb?

以下过程是我试图在 nodejs 中构建的(它本质上类似于 Grid 2,但在 nodejs 的目的是持续集成运行的测试)并为以下任何部分寻找任何包或建议。

  1. 首先使用持久的双向连接(WebSockets 或 HTTP 1.1)对用户进行身份验证

  2. 用户要求在可用硬件节点上运行的启动/队列测试(我将添加更多的 linux 盒子,因此需要一个包来跨“网格”分发并行测试)

  3. 监控正在运行的 selenium 浏览器测试并发送客户端状态更新(例如)运行/停止)

  4. 用户提交的测试需要持久且可访问,以便将来或持续集成(couchdb 或 mysql)

  5. 调度作业以连续运行(例如,每隔设定的时间间隔运行)。

nodejs是不是有点矫枉过正?我应该只关注 Java 的背面吗?

0 投票
2 回答
2027 浏览

java - selenium grid 2 使用 xvfb 或 xvnc 实现无头连续集成?

所以使用网格 2,每次 selenium RC 开始时是否有一个配置文件来启动 xvfb 或 xvnc。Hub 和 Selenium RC 已经安装在不同的 linux 机器上。

另外,有没有办法在RC上运行的selenium测试和客户端(Java客户端软件)之间实现双向通信?例如)测试失败,因为在页面上找不到元素,需要通知客户端并且客户端可以提供正确的元素。

所以 selenium web 驱动程序测试不应该停止,而是等到正确的输入或客户端终止测试。有点像反馈循环,以确保考虑到 Web 应用程序的所有变化。例如)具有随机生成 ID 的表单按钮,依赖于在某些页面上随机中断的 xpath。

是否可以通过指定 selenium grid 2 启动 rc 的定期时间间隔来实现持续集成?

这是否意味着,我需要将 webdriver 测试也扩展为 Jetty 服务器?还是网?改为启动硒网络服务?

0 投票
2 回答
21039 浏览

x11 - 调整 Xvfb 显示的大小

简单问题:有没有办法调整 Xvfb 显示的大小?

我尝试使用 RandR,但 Xvfb 似乎不支持 RandR 扩展。还有其他方法可以调整屏幕大小吗?

谢谢你的帮助!