我在使用Xvfb的无头firefox中运行一些测试。但是,在我的测试完成后,我想恢复正常显示。但我无法做到这一点。这就是我在做什么。
在第4步之后,我想在同一个终端打开firefox,但我无法看到它,因为它指向:10显示。
我想知道如何关闭这个(xvfb:10)以便我可以打开firefox并查看它。
答案 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
并在结束时关闭。