我正在尝试使用pywinauto运行一些访问查询。错误不断变化。
检查控件属性后,我发现查询名称确实存在。但是代码会抛出错误,指出找不到匹配项。
import os
import subprocess
access_file = r'C:\Ren'
filename='test.accdb'
accessPath = 'C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.exe'
subprocess.Popen([accessPath,access_open])
dlg=Desktop(backend='uia').window(title_re='Access*')
sleep(10)
dlg.Navigation_Pane.Queries.Query1.invoke()
dlg.Yes.invoke()
print(dlg.print_control_identifiers())
此代码在较小的数据库上有效。我在大型数据库上对其进行了第一次尝试,但出现错误,因此我创建了一个带有少量表和查询的测试数据库。很好。
当我更改dlg.Navigation_Pane.Queries.delete_reports.invoke()
时
并更改实际数据库的路径。我得到一个MatchError: Could not find 'Queries'
。
这是控件属性。
GroupBox - 'Queries' (L4, T2979, R429, B5581)
| | | | ['Queries', 'QueriesGroupBox', 'GroupBox8', 'Queries0', 'Queries1']
| | | | child_window(title="Queries", control_type="Group")
Button - 'delete report' (L4, T3271, R429, B3301)
| | | | | ['Button147', 'delete reportButton', 'delete report']
| | | | | child_window(title="delete report", control_type="Button")
我不明白为什么它只能在一个数据库上工作而不能在另一个数据库上工作。
关于, 仁。