gpt4 book ai didi

python - 无法在 python 中使用 pywinauto 自动点击 "Oracle VM virtual box"按钮

转载 作者:太空宇宙 更新时间:2023-11-03 21:13:42 26 4
gpt4 key购买 nike

我正在研究在“Oracle VM Virtual box”中加载图像文件的自动化,以在 python 中使用 Pywinauto 创建虚拟机。我能够自动安装 Virtual Box 软件,然后能够启动图中所示的 exe

VM Tool GUI

但之后我无法使用 Pywinauto 自动在“Oracle VM VirtualBox Manager”上执行任何 GUI 操作(例如选择文件菜单或单击新建按钮)。我已附上 Oracle VM Virtual box 的检查工具的快照

Inspect Tool VM VirtualBox

下面是我尝试运行的代码

>>> 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'}

在检查工具中,显示 Oracle VM VirtualBox Manager 窗口“键盘是否可聚焦”为 false,并且这些控件没有自动化 ID。

请建议我在此 GUI 上执行按钮单击自动化的命令。我是 python 新手,无法理解下一步应该做什么。

最佳答案

如果您使用 Inspect.exe,则必须使用 Application(backend="uia") 作为入口点。 Getting Started Guide 中对此进行了描述。 .

默认后端是“win32”,因此如果Spy++可以看到这个按钮就可以使用它(我想答案是“否”)。

关于python - 无法在 python 中使用 pywinauto 自动点击 "Oracle VM virtual box"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54866951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com