【发布时间】:2019-02-25 13:08:01
【问题描述】:
我正在研究“Oracle VM Virtual box”中加载图像文件的自动化,以在 python 中使用 Pywinauto 创建虚拟机。我能够自动安装 Virtual Box 软件,然后能够启动图片中显示的 exe
但在那之后,我无法使用 Pywinauto 自动在“Oracle VM VirtualBox Manager”上执行任何 GUI 操作(例如选择文件菜单或单击新建按钮)。我附上了 Oracle VM Virtual box 的 Inspect tool 的快照
下面是我要运行的代码
>>> from pywinauto import application
>>> app=application.Application()
>>> app.start(r"C:\Program Files\Oracle\VirtualBox\VirtualBox.exe")
<pywinauto.application.Application object at 0x000001D671679BA8>
>>>app['Oracle VM VirtualBox Manager']['New']
<pywinauto.application.WindowSpecification object at 0x000001D670FB9CC0>
>>> app['Oracle VM VirtualBox Manager']['New'].click()
执行上面显示的点击命令后出现错误
错误:
Traceback (most recent call last):
File "C:\Program Files\Python37\lib\site-packages\pywinauto\application.py", line 246, in __resolve_control
criteria)
File "C:\Program Files\Python37\lib\site-packages\pywinauto\timings.py", line 453, in wait_until_passes
raise err
pywinauto.timings.TimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
app['Oracle VM VirtualBox Manager']['New'].click()
File "C:\Program Files\Python37\lib\site-packages\pywinauto\application.py", line 352, in __getattribute__
ctrls = self.__resolve_control(self.criteria)
File "C:\Program Files\Python37\lib\site-packages\pywinauto\application.py", line 249, in __resolve_control
raise e.original_exception
File "C:\Program Files\Python37\lib\site-packages\pywinauto\timings.py", line 431, in wait_until_passes
func_val = func(*args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\pywinauto\application.py", line 210, in __get_ctrl
ctrl = self.backend.generic_wrapper_class(findwindows.find_element(**ctrl_criteria))
File "C:\Program Files\Python37\lib\site-packages\pywinauto\findwindows.py", line 87, in find_element
raise ElementNotFoundError(kwargs)
pywinauto.findwindows.ElementNotFoundError: {'best_match': 'New', 'top_level_only': False, 'parent': <win32_element_info.HwndElementInfo - 'Oracle VM VirtualBox Manager', Qt5QWindowIcon, 68992>, 'backend': 'win32'}
在 Inspect 工具中,它显示 Oracle VM VirtualBox Manager 窗口“Is Keyboard focusable”为假,并且这些控件没有自动化 ID。
请建议我在此 GUI 上执行按钮单击自动化的命令。我是 python 新手,无法理解下一步该怎么做。
【问题讨论】:
-
请格式化问题,以便您的代码易于阅读
-
嗨 Gourav,我是 SO 新手,不知道如何格式化问题。我尽力表示代码可读
标签: python automation virtual-machine pywinauto