如何使 Xvfb 显示可见?

2023-12-24

我通过 Xvfb 在显示编号 :99 上运行 selenium,如下所示:

/usr/bin/Xvfb :99 -ac -screen 0 1024x768x8 & 导出 DISPLAY=":99" && java -jar /usr/lib/selenium/selenium-server-standalone-2.24.1.jar -端口 4444

但是,默认情况下,除 :0 以外的数字的显示是不可见的。如何使其可见以实际看到 selenium 在浏览器中正在做什么?


Use X11vnc https://en.wikipedia.org/wiki/X11vnc

您所需要的只是安装x11vnc via:

sudo apt-get install x11vnc xvfb fluxbox

Optionally install fluxbox to have simple window manager.

Run x11vnc在壳里

然后要设置对 Xvfb 的访问以进行远程控制,您可以使用 X11 over SSH 或 VNC over SSH,例如

export DISPLAY=:1
Xvfb $DISPLAY -screen 0 1024x768x16 &
fluxbox &
x11vnc -display $DISPLAY -bg -forever -nopw -quiet -listen localhost -xkb

Run x11vnc使用脚本

这是可以运行的脚本友好版本Xvfb, x11vnc and fluxbox:

export DISPLAY=${DISPLAY:-:0} # Select screen 0 by default.
xdpyinfo
if which x11vnc &>/dev/null; then
  ! pgrep -a x11vnc && x11vnc -bg -forever -nopw -quiet -display WAIT$DISPLAY &
fi
! pgrep -a Xvfb && Xvfb $DISPLAY -screen 0 1024x768x16 &
sleep 1
if which fluxbox &>/dev/null; then
  ! pgrep -a fluxbox && fluxbox 2>/dev/null &
fi
echo "IP: $(hostname -I) ($(hostname))"

Note: I'm using it in the following Docker project https://github.com/EA31337/EA-Tester (check .funcs.cmds.inc.sh).

Run x11vnc使用单行

或者您可以使用以下一行:

$ x11vnc -create -env FD_PROG=/usr/bin/fluxbox \
    -env X11VNC_FINDDISPLAY_ALWAYS_FAILS=1 \
        -env X11VNC_CREATE_GEOM=${1:-1024x768x16} \
        -gone 'killall Xvfb' \
        -bg -nopw

  • -create让它启动 Xvfb
  • X11VNC_FINDDISPLAY_ALWAYS_FAILS=1使其转到创建的 Xvfb 会话(显示:1而不是:0这将是普通桌面)
  • FD_PROG=/usr/bin/fluxbox让它启动 Fluxbox(Ubuntu 的一个,应该有背景 Ubuntu 徽标)
  • X11VNC_CREATE_GEOM=${1:-1024x768x16}将屏幕设置为 16 位颜色 1024x768
  • -gone退出时进行清理,否则 Xvfb 会被留下(杀死xvfb也杀死fluxbox)

连接到VNC

如果您的 Xvfb 仅在本地主机上侦听,您可以设置到本地主机的隧道,这样 vncviewer 就可以连接到本地主机以远程控制服务器。例如。

ssh -N -T -L 5900:localhost:5900 user@remotehost &
vncviewer -encodings 'copyrect tight zrle hextile' localhost:5900

或者要监听所有带有密码的地址,请使用:

x11vnc -display :0.0 -usepw

To setup password, run: x11vnc -storepasswd.

See: 通过 SSH 进行远程控制 https://en.wikipedia.org/wiki/Xvfb#Remote_control_over_SSH在 Xvfb 维基百科页面


还检查:

  • 在 Docker 容器中使用 VNCserver + GUI 应用程序 + Virtual Display https://stackoverflow.com/q/36221215/55075
  • 带有 x11vnc 和 Xvfb 的 Ubuntu Fluxbox GUI http://www.richud.com/wiki/Ubuntu_Fluxbox_GUI_with_x11vnc_and_Xvfb
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 Xvfb 显示可见? 的相关文章

随机推荐

  • 如何使用SQL查询来定义dbtable中的表?

    In JDBC 到其他数据库 http spark apache org docs latest sql programming guide html jdbc to other databases我找到了以下解释dbtable范围 应读取
  • 当单元格内容被截断时,将 VB.Net DataGridView 中的三个点(省略号)(...) 更改为自定义字符

    我正在 VB Net 中开发一个项目 并且使用古吉拉特语字体 非 Unicode 我放置了一个 DaraGridView DGV 并在 DGV 中显示数据库中存储的数据 在 DGV 中 如果单元格的内容被截断 则 DGV 显示椭圆 三个点
  • iPhone 应用程序和 Web 应用程序之间的双向同步

    我有一个依赖于 MySQL 数据库的 Web 应用程序 我正在考虑为其构建一个 iPhone 应用程序 该应用程序将允许用户在网络应用程序上浏览 插入 更新 删除其帐户的数据 最简单的方法是将 iPhone 应用程序简单地构建为 Web 应
  • java.lang.IllegalStateException:凭证加密存储中的 SharedPreferences 在用户解锁之前不可用

    Google Pixel 设备 OS 9 0 pie 上的 cashlytics 中不会记录崩溃 Playstore 将 ANR Crashes 报告为 java lang IllegalStateException 凭证加密存储中的 Sh
  • C# catch(FileNotFoundException) 和 CA1031

    所以这段代码会触发CA1031 try logic catch FileNotFoundException exception type handle error 虽然这个没有 try logic catch FileNotFoundExc
  • 密码确认验证 CakePHP

    我进行了广泛的搜索 尝试了书中的每一个技巧 但我仍然无法让我的 CakePHP 应用程序执行简单的密码确认验证 我尝试创建一个自定义验证规则 如下所示 passwordequal gt array rule gt checkpassword
  • 无法让此正则表达式适用于 Snakemake 中的 wildcard_constraints

    我有一个用 Snakemake 编写的工作流程 用于分析生物测序数据 工作流程期望对所有数据文件进行组织 以便每个原始读取文件都以检测类型 RNASeq DNaseSeq 等 开头 并且在工作流程生成的所有文件中都保持此文件名约定 我有一个
  • Chrome中如何区分浏览器关闭和刷新事件?

    如何使用 JavaScript for CHROME 区分浏览器关闭和刷新事件 我尝试过下面的 JavaScript 代码 但它不适用于 Chrome window onbeforeunload function e var e e win
  • 如何打印问题中的变量值?

    我做一点补充 sumbit CIN A B CO R sumbit 0 1 1 CO R write CIN nl write A nl write nl write B nl write nl write CO write R nl 我想
  • Kotlin Gson 反序列化

    我收到一个带有地图包装器的 JSON 数据模型Table 我试图使用泛型来传递超出包装器的类型 但它在运行时翻译得不好 这是我的 JSON 文件的示例 Table paymentmethod id 1 paymentmethod descr
  • 合并两个纠缠的凸包

    如何合并两个纠缠的凸包 例如this https i stack imgur com ALM4G jpg 使用格雷厄姆扫描或任何其他算法在线性时间内形成凸包 基本上 你使用安德鲁的修改 https en wikibooks org wiki
  • 本机查询支持 SQL Server 的 Spring data jpa 流

    我们需要使用 Spring data jpa 从 SQL Server 检索数据 由于我们有数百万条记录 因此我们无法一次请求加载所有数据 是否可以使用本机查询进行流式传输 是的 您可以让您的查询方法在 Spring Data JPA 中返
  • 添加翻转到 JTree 句柄

    我正在尝试对Collapsed Icon https docs oracle com javase 8 docs api javax swing plaf basic BasicTreeUI html collapsedIcon对于 JTr
  • 堆栈溢出 C++

    所以我试图解决一个任务 a 已经有代码 但系统输出 堆栈溢出 我是 C 新手 我的英语不好 所以很抱歉造成误解 include
  • 如何(正确)使用带有实时绑定的枚举类型(TObjectBindSourceAdapter)

    我在用着TObjectBindSourceAdapter对对象使用实时绑定 我正在使用的对象的属性之一TObjectBindSourceAdapter具有枚举类型 但是当我在对象中使用枚举类型时 适配器中的字段永远不会生成 我目前找到的唯一
  • 以编程方式显示 ImageView

    当用户单击按钮时 如何使 ImageView 出现在屏幕中间 我已将图像放在 res drawable 文件夹中 我一直在尝试使用下面的代码 但我不知道如何使 ImageView 出现 View v new ImageView getBas
  • 通过 GUID 保护 AJAX 请求

    我正在编写一个网络应用程序 它将通过 AJAX 发出请求 并希望锁定这些调用 经过一番研究后 我正在考虑使用某种形式的随机令牌 字符串 与请求 GUID 一起传回 这是我的算法的重要部分 将令牌分配给 JavaScript 变量 在服务器端
  • angerlySetInnerHTML 内的 React 组件

    在我的应用程序中 我需要获取 HTML 字符串 从服务器或从用户输入 也许是从 markdown 处理的东西 无论如何 看来我真的需要使用setDangerousHtml 但我还需要该部分内的一些反应组件 例如 我会将一些链接转换为Link
  • 从流中播放 MP3

    有没有办法使用 VB NET 或 C 直接从内存流 没有任何临时文件 播放 MP3 或者从 SQLITe 数据库播放 Thanks 我建议你尝试一下Mp3Sharp http www robburke net mle mp3sharp 它是
  • 如何使 Xvfb 显示可见?

    我通过 Xvfb 在显示编号 99 上运行 selenium 如下所示 usr bin Xvfb 99 ac screen 0 1024x768x8 导出 DISPLAY 99 java jar usr lib selenium selen