如何在使用后关闭Xvfb

时间:2014-07-21 16:17:22

标签: selenium robotframework xvfb

我在使用Xvfb的无头firefox中运行一些测试。但是,在我的测试完成后,我想恢复正常显示。但我无法做到这一点。这就是我在做什么。

  1. 打开终端
  2. sudo Xvfb:10 -ac&
  3. export DISPLAY =:10
  4. 使用RobotFramework + Selenium执行我的测试
  5. 在第4步之后,我想在同一个终端打开firefox,但我无法看到它,因为它指向:10显示。

    我想知道如何关闭这个(xvfb:10)以便我可以打开firefox并查看它。

2 个答案:

答案 0 :(得分:4)

简单的解决方案是保留DISPLAY的旧值,将其更改为指向xvfb,然后在运行测试后将其更改回保存的值。

这使xvfb保持运行,所以你也应该获得该进程的pid并将其杀死。否则,如果您运行这组步骤十几次,那么您将在后台运行十几个xvfb进程。

答案 1 :(得分:0)

第二个命令末尾的&告诉Linux在后台运行它命令。您可以看到与$ jobs一起运行的后台命令列表。 Ubuntu16.04上的示例:

$ sudo Xvfb :10 -ac &
[1] 31294
$ jobs -l
[1]+ 31294 Running                 sudo Xvfb :10 -ac &

正如您在上面的输出中看到的那样,jobs -l显示后台作业,输出的第二列是PID,可用于将其$ sudo kill 31294删除。< / p>

另一个可能“更干净”的选项是启动Xvfb只是为了运行你想要的命令并退出自动而不是让它在后台运行。这样你就可以用以下代码替换2,3和4行:

xvfb-run python my_selenium_tests.py

只需用任何运行测试的方式替换python my_selenium_tests.py即可。它只会打开Xvfb并在结束时关闭。