我有我运行testing的地方。 jenkins似乎会在执行特定作业中描述的命令时执行命令。 在这里,我正在尝试运行我的Selenium Webdrivertesting,但它告诉我,我在启动Firefox时出现错误。 最终的想法是完全在这个盒子上运行networkingtesting,并且也截取一些错误的截图。 我使用selenium-java-2.25.jar,firefox 10,linux操作系统。 有趣的是,我可以手动ssh进入框中,暂时从盒子上的另一个用户(获得一个X隧道)复制魔术cookies,执行export DISPLAY=mydisplay:1.0 ,然后启动我的seleniumtesting使用ant。 这将带来Firefox和testing就好了。 这里有各种线程,似乎有完全相同的问题,我想我已经尝试了大部分。 这是我所做的: 重新启动盒子,用VNC重新login。 在运行seleniumtesting之前,在Jenkins中放置一个bash脚本。 bash脚本基本上只是做一个export DISPLAY=mydisplay:1.0 。 它也执行xclock 。 这工作正如我可以看到xclock显示在VNC中。 iptables已closures firefox正确地位于/ usr / bin / firefox中 sshd_config显示X11Forwarding为true。 据说降级Firefox帮助一些人,但我不希望这样做。 Webdriver无论如何都应该支持FF 10。 但是,以上都不能解决问题。 它似乎并不像本地端口上的端口7055甚至存在: netstat -an | grep 7055 netstat -an | grep 7055 – 没有打印 这就是我的/ etc / hosts所说的: 1 127.0.0.1 localhost.localdomain localhost 2 […]
我的目标是有一个程序,睡在后台,但可以由用户通过一些“热键”激活。 从Xlib手册和Xlib O'reilly手册的深入挖掘中,我可以得出正确的方法是使用XGrabKey。 然而,我对这个过程的理解是不正确的,因为一个简单的概念certificate是行不通的。 我的理解是,如果我用根窗口作为grab_window调用XGrabKey,并且owner_events为false,那么无论何时按下我的热键,事件将只发送到根窗口。 如果我然后从根窗口中selectKeyPress事件,然后监听X事件,当按下热键时,我应该得到一个按键事件。 我在下面贴了一个简单的例子。 我期望的是当程序运行时,不pipe窗口有什么焦点,如果按下Ctrl + Shift + K,我的程序应该输出“Hot key pressed! 在控制台中,然后终止。 此外,这是我的理解,如果XGrabKey失败,默认的error handling程序将显示一条消息,因为它不,我假设调用成功。 显然,我的理解有点不对劲。 任何人都可以指向正确的方向吗? #include <iostream> #include <X11/Xlib.h> #include <X11/Xutil.h> using namespace std; int main() { Display* dpy = XOpenDisplay(0); Window root = DefaultRootWindow(dpy); XEvent ev; unsigned int modifiers = ControlMask | ShiftMask; int keycode = XKeysymToKeycode(dpy,XK_Y); Window grab_window = […]
在Linux下,我的C ++应用程序使用fork()和execv()来启动多个OpenOffice实例,以便查看一些幻灯片幻灯片。 这部分工作。 接下来,我希望能够将OpenOffice窗口移动到显示屏上的特定位置。 我可以用XMoveResizeWindow()函数做到这一点,但我需要find每个实例的窗口。 我有每个实例的进程ID,我怎么能从那里findX11窗口? 更新 – 感谢安迪的build议,我已经把它取消了。 我在这里发布代码与Stack Overflow社区分享。 不幸的是,Open Office似乎没有设置_NET_WM_PID属性,所以这并不能最终解决我的问题,但它确实回答了这个问题。 // Attempt to identify a window by name or attribute. // by Adam Pierce <adam@doctort.org> #include <X11/Xlib.h> #include <X11/Xatom.h> #include <iostream> #include <list> using namespace std; class WindowsMatchingPid { public: WindowsMatchingPid(Display *display, Window wRoot, unsigned long pid) : _display(display) , _pid(pid) { […]
我想在我的Linux机器上安装一个程序(一个Java应用程序)(我正在使用Slackware)。 我收到以下错误,我不明白。 你能告诉我如何解决这个问题吗? 我不确定这是否是一个我可以在这里问的问题,因为这不是一个编程问题,但是如果你回复,我将不胜感激。 谢谢。 这里是我得到的:(我看到一些X11显示variables需要设置,但我应该给它什么样的价值?) ~$ java -jar gate-5.0-beta1-build3048-installer.jar – ERROR – java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it. java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it. at java.awt.GraphicsEnvironment.checkHeadless(Graphic sEnvironment.java:159) at java.awt.Window.<init>(Window.java:407) at java.awt.Frame.<init>(Frame.java:402) at net.sourceforge.mlf.metouia.borders.MetouiaDotsBuf fer.<init>(MetouiaDotsBuffer.java:105) […]
如何在Docker容器中运行GUI应用程序? 是否有任何图像设置vncserver或什么,以便你可以 – 例如 – 添加一个额外的speedbump沙箱说火狐?