XVFB on Jenkins连接到错误的显示器。显示器显示黑屏
我试图使用ubuntu aws/vm上的XVFB通过jenkins执行无头铬硒测试. 我的jenkins xvfb config是: 预构建执行外壳: export DISPLAY=:98 x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :98 -auth /var/run/lightdm/root/:0 -rfbport 5900 构建开始时,我会看到: Xvfb starting$ /usr/bin/Xvfb :98 -screen 0 1024x768x24 -fbdir /var/lib/jenkins/xvfb-82-..fbdir10942188934689457655 [Jenkins-Headless] $ /bin/sh -xe /tmp/jenkins11502774511620101086.sh + export DISPLAY=:98 + x11vnc -xkb -noxreco
4 2024-01-25
编程技术问答社区
ubuntu 11.04中xvfb运行错误
我的任务是使用Python中的无头Webkit(PYQT4.QTWEBKIT)抓取Google搜索结果. 该模块正在使用pyqt4.i抓取结果,我必须在Amazon EC2中执行此脚本. . 同时,我的模块必须在循环中执行.强> 应该如何解决? 这是我的循环: for i in range(10): try: query_dict["start"] = i * 10 url = base_url + ue(query_dict) flag = True while flag: parsed_dict = main(url) time.sleep(8.4) flag = False except: pass main(url): def main(url): cmd = "xvfb-ru
4 2024-01-24
编程技术问答社区
使用ffmpeg和xvfb渲染出一个裁剪过的屏幕版本
我正在使用以下命令来渲染在虚拟帧缓冲区内运行的铬浏览器的视频(使用xvfb): ffmpeg -f x11grab -i :5 -s `DISPLAY=:5 xdpyinfo | grep 'dimensions:'|awk '{print $2}'` -r 30 tests.mpg 当我省略DISPLAY=:5 xdpyinfo | grep 'dimensions:'|awk '{print $2}'时,它将以大约1024x768呈现,因此我调用XDPyInfo以获取显示的分辨率并告诉FFMPEG. 但是,当我使用该命令时,它显示了相同的裁剪区域,只有拉伸适合我给我的ffmpeg的分辨率. 我希望能够记录整个虚拟帧缓冲区而无需裁剪或拉伸.有办法这样做吗? 我今天早上已经从消息来源收集了ffmpeg,运行v2.8.git 解决方案 -i在控制输出之后出现的参数,而不是输入. 在-i之前,将源分辨率使用-video_size与xdpyinfo o
2 2023-12-15
编程技术问答社区
调整Xvfb显示器的大小
简单的问题:有没有办法调整xvfb显示大小? 我尝试了Randr,但似乎Randr扩展名不受XVFB的支持.还有其他调整屏幕大小的方法吗? 感谢您的帮助! 解决方案 您可以使用服务器args命令行参数为正在创建的虚拟帧缓冲区指定自定义分辨率,但这不会更改现有虚拟帧缓冲区的分辨率: xvfb-run --server-args="-screen 0, 1024x768x24" ... 其他解决方案 现在,大多数发行版本都会运送XVFB版本,并带有RANDR支持. 该代码于2015年末提交. 要调整大小,您将首先需要定义新模式(您可以使用诸如GTF之类的工具来获取Modeline定义值),将其添加到虚拟输出中,然后可以切换到它. IE对于1280x1024: xrandr --newmode "1280x1024" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
2 2023-12-15
编程技术问答社区
如何添加缺少的RANDR扩展名
我已经在无头服务器上设置了XVFB服务器,当我运行时 显示=:99 Firefox 我得到这个例外,缺少randr扩展 他们中的许多人说要从xorg.conf文件禁用一些Xinerna,但在我的情况下没有创建此文件. 所以我正在寻找如何添加丢失的randr扩展名. 解决方案 首先,XVFB不会从xorg.conf读取配置. XVFB是KDRIVE X服务器的变体,就像该家族的所有成员一样,从命令行获得了配置. 的确,Xrandr和Xinerama是相互排斥的,但是在XVFB的情况下,首先没有Xinerama.您可以使用至少以下命令行选项启动XVFB来启用Xrandr扩展程序 Xvfb +extension RANDR [further options] 其他解决方案 使用XVFB通过Selenium运行Firefox时,我会看到此错误消息.事实证明,这句话对我来说是红鲱鱼.该消息只是警告,而不是错误.这不是为什么Firefox无法正确启动的原因.
12 2023-12-15
编程技术问答社区
(在 Ubuntu 服务器上使用 'imgkit')wkhtmltopdf:无法连接任何 X 显示器
我在远程Ubuntu服务器上有一个Python脚本.在代码的某个时刻,我创建了一个HTML文件,然后将其转换为PNG.因此,我选择使用IMGKIT,它可以很好地完成工作(在将Python脚本上传到远程Ubuntu服务器之前,我在Mac OS上测试了代码): import imgkit imgkit.from_url('MyFile.html', 'MyFile.png') 现在,问题是Ubuntu Server没有安装IMGKIT和WKHTMLTOPDF.因此,我运行了以下命令: sudo pip install imgkit 然后: sudo apt-get install wkhtmltopdf 然后返回错误: QXcbConnection: Could not connect to display Could not connect to any X display. You need to install xvfb(sudo apt-g
0 2023-12-10
编程技术问答社区
以编程方式为ChromeDriver设置环境属性(SetEnvironmentProperty)
我正在使用SE2和Firefoxdriver进行无头的测试 环境(XVFB).使用FirefoxDriver,我可以将显示环境属性设置为非常 容易: FirefoxBinary firefox = new FirefoxBinary(); firefox.setEnvironmentProperty("DISPLAY",":"+DISPLAY); FirefoxProfile firefoxProfile = new ProfilesIni().getProfile(Config.webDriverFirefoxProfile); this.webDriver = new FirefoxDriver(firefox,firefoxProfile); 如何使用Chromedriver进行上述? 更新:似乎这是无法做到的!我的这里有一个类似的问题,其中解释了情况: Chromedriver无头 解决方案 看起来他们已经修
4 2023-11-30
编程技术问答社区
Xvfb和Chromedriver之间有什么区别,何时使用它们?
嗨,我打算设置硒来测试我的Web应用程序. 我已经读到Chromedriver和XVFB都可以用于运行测试. 我还读到XVFB可以配置为使用Chromdriver. ,这让我感到困惑. Chromedriver和XVFB在运行硒测试中有什么作用. 谢谢 解决方案 ChromeDriver-在 Chrome 浏览器上进行测试(使用GUI). xvfb-以无头>模式进行测试.可以是包括Chrome在内的任何浏览器(浏览器GUI不会显示,因此您可以将机器用于其他操作). 代码片段(Python): Chrome驱动程序(下载 shere ): browser = webdriver.Chrome() // to launch tests in Chrome browser. xvfb-使用pyvirtualdisplay(xvfb的python包装器): from pyvirtualdisplay import Display from
4 2023-11-30
编程技术问答社区
在没有显示器的linux服务器上运行Chrome WebDriver
我想在Linux服务器上使用Selenium2的Chrome Webdriver运行自动测试. 我已经设置了通过使用XVFB在服务器上运行的Firefox(请参阅 http://www.semicomplete.com/blog/geekery/xvfb-firefox.html ),并想对Chrome做类似的事情.这可能吗? 解决方案 我无法找到像firefoxbinary一样为Chromedriver编程执行此操作的方法. 我已经提交了一个改进请求,该请求附有一个补丁以允许这样做.您可以在这里看到它:编辑: 您可以在Stephen中看到下面的回复有关如何使用此更改的回复.: https://stackover.com/a//a/16619608/998442 其他解决方案 我面临着与硒 + yromedriver设置Linux盒的同样挑战, 这是我的笔记: pre-reqs: 安装JRE运行硒jar 安装硒服务器 从 https:/
8 2023-11-30
编程技术问答社区
Cucumber headless xvfb ubuntu
我正在尝试在Amazon EC2上设置Jenkins构建服务器.我计划以无头模式运行我的黄瓜测试套件. 我成功地在IRB中无头 require 'watir-webdriver' require 'headless' headless = Headless.new headless.start b = Watir::Browser.new(:chrome) b.goto("www.google.com") b.title b.close headless.destroy ,但是如果我将以下内容添加到我的env.rb if ENV['HEADLESS'] require 'headless' headless = Headless.new headless.start at_exit do headless.destroy end end 和运行 cucumber ENV=HEADLESS features/test.feature:2
6 2023-11-27
编程技术问答社区
以非 root 用户身份从 Ruby 在 Xvfb 内运行 Selenium::WebDriver::Firefox
我正在尝试使用红宝石脚本进行一些无头测试.本质上,我正在显示xvfb:1,然后使用watir-webdriver启动Watir::Browser.new(:firefox) 如果您将脚本运行为根 - 我可以运行x11vnc并观看脚本执行浏览器并与之交互. 问题是,我需要能够从Rails应用程序调用此Ruby脚本,而不是将其运行为root ...如果我尝试从命令行中运行脚本作为常规用户,则XVFB启动ON:1照往常,但是Watir不会启动浏览器...它最终在60秒后淘汰.通过VNC连接可揭示带有鼠标光标的黑屏. 我可以从命令行中完成全部工作 - 启动XVFB,然后启动firefox --display=:1,然后浏览器启动,所以它必须是硒问题,对吗? nutshell:Selenium/WebDriver拒绝在XVFB内部启动浏览器,除非我将脚本作为root. 解决方案 解决 - 编辑 * - 对不起,我无法回答这个问题,但显然我的帐户太新了,无法做到.
6 2023-11-27
编程技术问答社区
用于在Jenkins上同时运行多个作业实例的Xvfb插件
我在詹金斯(Jenkins)有一份工作,可以运行用硒编写的UI测试.该作业可以同时运行多个实例.我在尝试使用XVFB时遇到了一个问题( 使用XVFB插件 配置如下. 从xvfb日志中 Xvfb starting$ /usr/bin/Xvfb -displayfd 2 -screen 0 1024x758x16 -fbdir /srv/jenkins/xvfb-86-2156913754362856583.fbdir Xvfb starting$ /usr/bin/Xvfb -displayfd 2 -screen 0 1024x758x16 -fbdir /srv/jenkins/xvfb-87-5845090375656014678.fbdir 以上两个工作实例之一失败.失败消息是: 02:11:51 _XSERVTransSocketINETCreateListener: ...SocketCreateListener() failed 02:11:51 _XSE
10 2023-11-02
编程技术问答社区
Java AWT需要X11,如何使用xvfb(ubuntu 14.04)。
我有一个要求x11显示变量的Java应用程序, 我得到的例外是: Caused by: java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it. at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204) at java.awt.Window.(Window.java:536) at java.awt.Frame.(Frame.java:420) 我已经在Ubuntu机器上安装了XVFB: root 1470 1469 0 02:40 pts/3 00:00:00 Xvfb :1 -screen 0 11
6 2023-11-02
编程技术问答社区
JavaFX+XVFB-Yet Another Xlib:ExtensiońRandŕMissing on Displaý99
我有一个带有Javafx的Ubuntu Headless Server,并且XFVB启动和运行.现在,我拥有非常相似的Ubuntu服务器,并尝试使我的Javafx应用程序使用XVFB运行.但是我总是得到一个例外: Prism ES2 Error - nInitialize: glXChooseFBConfig failed Xlib: extension "RANDR" missing on display ":99". 通常,我可以通过导出ld_library_path =/usr/lib/x86_64-linux-gnu/来解决Xrandr异常,但这一次.我真的不知道怎么了... 这是我通常启动服务器的方式: xvfb-run -a java -cp build/classes:lib/*:/usr/lib/jvm/java-7-oracle/jre/lib/jfxrt.jar kic.engine.thrift.Server 解决方案 由于Java 8
6 2023-11-02
编程技术问答社区
安装和配置XVFB
我正在尝试找到一个兼容的Ubuntu操作系统,XORG版本和XVFB版本.谁能帮助我使用指示安装XVFB而不挂在 初始化Build-In-In扩展GLX 到目前为止,我已经尝试了以下 Ubuntu 13 Server(No graphics card) sudo apt-get install xorg sudo apt-get install xvfb sudo apt-get install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic 我运行命令xvfb :10,它挂在 上 Initializing build-in extension GLX 我可以下载可以兼容的特定版本还是可以兼容的操作系统? 解决方案 安装XVFB或Xephyr或XVNC.还要安装PyvirtualDisplay Python模块.这是适用于Ubuntu 14.04,也在16.04上进行了测试. s
8 2023-11-02
编程技术问答社区
在 cron 中运行无头硒鼓时,出现错误 "Pyperclip 无法为您的系统找到复制/粘贴机制"。
我已经在Python中实现了硒脚本,以将一些图片和内容上传到Facebook,我将其命名为fbupload.py. 当我以这种方式启动它时,它可以完美地工作(在无头模式下): Xvfb :10 -ac & python3 /home/someuser/scripts/FBUpload.py 问题是,当我尝试配置启动同一脚本的cronjob时,这种方式: 00 * * * * Xvfb :10 -ac & 01 * * * * python3 /home/someuser/scripts/FBUpload.py 45 * * * * kill -9 $(ps -auxw |grep Xvf|head -1| awk '{print $2}') 然后,它失败了以下错误: pyperclip找不到系统的复制/粘贴机制 这是我的设置: Ubuntu 20.04.4 LTS | python3 | pyperclip 1.7.0 这些是我已经安装的复制和
8 2023-10-25
编程技术问答社区
Xvfb图像缓冲引发java.awt.Headless异常
我的Java WebApp托管在Tomcat 7.0.39中需要XVBF来写入图像并将其输出给客户端.当我打开处理图像写作的servlet时,我会收到以下错误消息: 15.05.2013 21:24:56 org.apache.catalina.core.ApplicationContext log SCHWERWIEGEND: StandardWrapper.Throwable java.awt.HeadlessException at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159) at java.awt.Window.(Window.java:414) at java.awt.Frame.(Frame.java:403) at java.awt.Frame.(Frame.java:368) at serv
4 2023-10-24
编程技术问答社区
在远程Linux上的背景中运行XVFB
我在远程Linux上面临XVFB的问题.当我运行命令 时 Xvfb :99 & 我在命令行上获取此消息 Initializing built-in extension Generic Event Extension Initializing built-in extension SHAPE Initializing built-in extension MIT-SHM Initializing built-in extension XInputExtension Initializing built-in extension XTEST Initializing built-in extension BIG-REQUESTS Initializing built-in extension SYNC Initializing built-in extension XKEYBOARD Initializing built-in extension XC-MISC Initializi
10 2023-09-01
编程技术问答社区
Selenium get_screenshot_as_file 与 get_screenshot_as_base64?
我想知道一个比另一个的优点/缺点是什么? 我在以XVFB充当显示的无头远程实例上对抗Selenium Server. 这两种方法都可以正常工作,并且由此产生的屏幕捕获文件(如果我转换了基本64并将其保存为图像文件)是相同的文件大小,并且看起来相同. 那么为什么我要使用/不使用另一个? 解决方案 使用get_screenshot_as_file,屏幕截图将get保存到二进制文件中,而使用get_screenshot_as_base64这将返回您的base64 base64编码版本的屏幕截图. > 那么,为什么有人会使用base64版本? Base64背后的整个想法是,它允许您创建二进制数据的ASCII表示形式,这将增加数据大小,但还可以使您实际使用.例如,如果您尝试将二进制数据流发送到套接字,而无需编码它,则除非准备好处理二进制数据,否则结果很难预测. 由于传输的数据可能会畸形,尽早减少转移,并导致许多其他结果几乎无法预测.例如,如果您要运行一个非常
6 2023-08-28
编程技术问答社区
仅在虚拟显示中出现ElementNotVisibleException
我有一个脚本,需要通过Selenium与网页进行交互.我需要使用某种虚拟显示器来防止浏览器显示. 整体上,脚本效果很好,直到我将XVFB引入混音中.当我这样做时,我第一次尝试与页面互动时得到ElementNotVisibleException. 我尝试使用xvfbwrapper和pyvirtualdisplay具有相同效果. 这是无效的代码: from xvfbwrapper import Xvfb vdisplay = Xvfb() vdisplay.start() oBrowser = Browser() oBrowser.visit(sUrl) oBrowser.find_by_id('some_field')[0].fill(sValue) #
20 2023-08-28
编程技术问答社区