我正在尝试为我的研究做一些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'])'