为什么在selenium测试中使用'pyvirtualdisplay'时会得到'easyprocess'输出?

时间:2017-11-21 10:45:54

标签: python selenium debugging pyvirtualdisplay

我正在尝试在selenium测试中使用pyvirtualdisplay来创建屏幕截图。以下是我在TestSuite python类中的测试中的方法:

self.display = Display(visible=0, size=(1366, 768))
self.display.start()

在创建驱动程序之前,并使用我使用的屏幕截图

self.driver.save_screenshot('example.png')

然而,当使用nosetests运行测试时,我得到一些奇怪的输出,如下所示:

easyprocess: DEBUG: version=0.2.3
pyvirtualdisplay: DEBUG: version=0.2.1
easyprocess: DEBUG: param: "['Xvfb', '-help']" 
easyprocess: DEBUG: command: ['Xvfb', '-help']
easyprocess: DEBUG: joined command: Xvfb -help
easyprocess: DEBUG: process was started (pid=21)
easyprocess: DEBUG: process has ended
easyprocess: DEBUG: return code=0
easyprocess: DEBUG: stdout=
easyprocess: DEBUG: stderr=use: X [:<display>] [option]
-a #                   default pointer acceleration (factor)
-ac                    disable access control restrictions
-audit int             set audit trail level
-auth file             select authorization file
-br                    create root window with black background
+bs                    enable any backing store support
-bs                    disable any backing store support
-c                     turns off key-click
c #                    key-click volume (0-100)
-cc int                default color visual class
-nocursor              disable the cursor
-core                  generate core dump on fatal error
-displayfd fd          file descriptor to write display number to when ready to connect
-dpi int               screen resolution in dots per inch
-dpms                  disables VESA DPMS monitor control
-deferglyphs [none|all|16] defer loading of [no|all|16-bit] glyphs
-f #                   bell base (0-100)
-fc string             cursor font
-fn string             default font name
...

这是什么输出?为什么我会得到它以及如何“避免”呢?

1 个答案:

答案 0 :(得分:1)

此输出的原因: 在pyvirtualdisplay软件包中,下面的代码位于xauth.py文件中,该文件检查是否安装了easyprocess。

def is_installed():
    '''
    Return whether or not xauth is installed.
    '''
    try:
        easyprocess.EasyProcess(['xauth', '-h']).check_installed()
    except easyprocess.EasyProcessCheckInstalledError:
        return False
    else:
        return True

此处-h由软件包中的debug使用,它显示easyprocess的帮助选项,并在输出中显示。因此,您的代码中不会有任何问题。

帮助在调试记录器中。因此,如果您想抑制这种情况,只需使用代码中的以下行将记录器设置为INFO级别即可。

logging.getLogger(“ easyprocess”)。setLevel(logging.INFO)

在初始化显示之前放置上面的代码(如下所述):

logging.getLogger("easyprocess").setLevel(logging.INFO)

self.display = Display(visible=0, size=(1366, 768))

self.display.start()

我希望它能解决您的问题!