使用pywinauto无法在Visual Studio上单击文件->打开->项目/解决方案或帮助->技术支持

时间:2019-07-16 20:06:10

标签: python pywinauto

使用pywinauto无法在Visual Studio上单击“文件”->“打开”->“项目/解决方案”或“帮助”->“技术支持”。

我正在尝试自动化类似于Visual Studio的应用程序:

 from pywinauto.application import Application
import time
app = Application(backend="uia").Start(cmd_line=u'"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\\devenv.exe"')

vshwndwrapper = app["Start Page - Microsoft Visual Studio"]
vshwndwrapper.wait('ready')
app.window(title_re='Start*').MenuBar.MenuBarClick('#9->#0', app)

1 个答案:

答案 0 :(得分:0)

此代码对我来说很好:

from pywinauto import Application

app = Application(backend="uia").start(r'"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe"')
app['Microsoft Visual Studio'].dump_tree()

它打印出许多可用于操作的元素。 如果您省略backend="uia",则仅输出以下很少的元素(在我的Visual Studio 2015实例中禁用了“开始”页面):

Control Identifiers:

HwndWrapper[DefaultDomain;;9f36883a-fdb6-4b48-ae9e-5ccdabe22dd2] - 'Microsoft Visual Studio'    (L-8, T-8, R1688, B1018)
[u'Microsoft Visual StudioHwndWrapper[DefaultDomain;;9f36883a-fdb6-4b48-ae9e-5ccdabe22dd2]', u'HwndWrapper[DefaultDomain;;9f36883a-fdb6-4b48-ae9e-5ccdabe22dd2]', u'Microsoft Visual Studio']
child_window(title="Microsoft Visual Studio", class_name="HwndWrapper[DefaultDomain;;9f36883a-fdb6-4b48-ae9e-5ccdabe22dd2]")
   | 
   | GenericPane - 'Toolbox - Initializing'    (L1470, T130, R1673, B960)
   | [u'GenericPane', u'ToolboxGenericPane', u'Toolbox']
   | child_window(title="Toolbox - Initializing", class_name="GenericPane")
   |    | 
   |    | TBToolboxPane - ''    (L1470, T130, R1673, B960)
   |    | [u'Microsoft Visual StudioTBToolboxPane', u'TBToolboxPane']
   |    | child_window(class_name="TBToolboxPane")
   | 
   | TBToolboxPane - ''    (L1470, T130, R1673, B960)
   | [u'Microsoft Visual StudioTBToolboxPane', u'TBToolboxPane']
   | child_window(class_name="TBToolboxPane")

默认后端为"win32",这表示旧的Win32 API技术,而"uia"表示Windows Vista中引入的UI自动化API(尽管也可以安装在WinXP上)。

我强烈建议您阅读Getting Started Guide,该书解释了库的核心概念。并请浏览其周围的其他文档。您可能会发现很多有用的信息。