Pywinauto:如何打开菜单然后打开文件?

时间:2019-07-23 14:12:31

标签: python automation ui-automation pywinauto

我正在尝试为我的研究做一些ui自动化,事实证明这很棘手。我正在尝试启动程序,打开文件,单击一些内容,然后打开另一个文件。在此过程中,我遇到了一些问题。首先,每当程序启动时,它都会启动一个子窗口,这是我需要与之交互的窗口,因此我必须单独连接到该窗口。我不确定我是否已成功连接到窗口,是否有办法检查?其次,为了打开正确的文件,我尝试使用menu_select('File->Open Case'),但收到错误消息说"There is no menu"

我尝试使用menu_select('File->Open Case'),我尝试使用app.send_keys("^o"),并且我尝试了dlg.File_tab.click()。这些尝试在我的代码中已注释掉。每次尝试都给出了不同的错误。

这是我所有的代码。

import time

from pywinauto import application
app=application.Application()

app.start(r'c:\Program Files\ANSYS Inc\v191\CFX\bin\cfx5pre.exe', wait_for_idle=False)
time.sleep(5)
app.connect(title_re='CFX-Pre', class_name='QWidget')
time.sleep(5)
dlg = app.window(title_re='CFX-Pre',class_name='QWidget')

#app['QWidget'].menu_select("File->Open Case")
#app.send_keys("^o")
#dlg.File_tab.click()

通过menu_select我得到了...

RuntimeError: There is no menu.

使用send_keys我得到了...

AttributeError: Neither GUI element (wrapper) nor wrapper method 'send_keys' were found (typo?)

使用File_tab.click()我得到了...

 raise MatchError(items = name_control_map.keys(), tofind = search_text)

MatchError: Could not find 'File_tab' in 'dict_keys(['', 'QWidget', '0', '1', '2', 'QWidget0', 'QWidget1', 'QWidget2', '3', 'QWidget3', '4', 'QWidget4', '5', 'QWidget5', '6', 'QWidget6', '7', 'QWidget7', '8', 'QWidget8', '9', 'QWidget9'])'

0 个答案:

没有答案