Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击在python中使用自动化id_Python_Python 3.x_Ui Automation_Pywinauto - Fatal编程技术网

单击在python中使用自动化id

单击在python中使用自动化id,python,python-3.x,ui-automation,pywinauto,Python,Python 3.x,Ui Automation,Pywinauto,请帮忙!!我设法安装了python 3.5.3(32位)和pywinauto。我已经开始阅读pywinauto的入门指南。我正在使用检查工具。我已使用以下代码启动该应用程序: from pywinauto import Application app = Application().start(r"C:\Program Files (x86)\Trane\TRACE 3D Plus\TRACE™ 3D Plus.exe"). 现在我想告诉python窗口是什么,我们使用: dlg = app[

请帮忙!!我设法安装了python 3.5.3(32位)和pywinauto。我已经开始阅读pywinauto的入门指南。我正在使用检查工具。我已使用以下代码启动该应用程序:

from pywinauto import Application
app = Application().start(r"C:\Program Files (x86)\Trane\TRACE 3D Plus\TRACE™ 3D Plus.exe").
现在我想告诉python窗口是什么,我们使用:

dlg = app['TRACE™ 3D Plus']

在这个屏幕中,我使用inspect工具获得了自动化id和类名的值。请告诉我使用自动化id单击该按钮的语法。例如,我的应用程序上的按钮具有自动化id“Airflows”,可以在inspect工具中看到。现在,如何使用pywinauto单击此项?

自动化id可用于更详细的窗口规范(请参阅《入门指南》中的章节)。在您的情况下,它应该看起来是这样的:

dlg = app['TRACE™ 3D Plus']
dlg.child_window(auto_id='Airflows').invoke() # or .click() that just calls an action
# or
dlg.child_window(auto_id='Airflows').click_input() # true click with moving cursor

在这个屏幕中,我使用inspect工具获得了自动化id和类名的值。请告诉我使用自动化id单击该按钮的语法。例如,我的应用程序上的按钮具有自动化id“Airflows”,可以在inspect工具中看到。现在,我如何使用python单击它呢?我尝试了以下代码:from pywinauto import Application app=Application().start(r“C:\Program Files(x86)\Trane\TRACE 3D Plus\TRACE™ 3D Plus.exe“)dlg=app['TRACE™ 3D Plus']app.Properties.print\u control\u identifiers()。它抛出了很多错误。它们都显示了路径D:\Python\lib\site packages\pywinauto\。。。。错误类似于pywinauto.timings.TimeoutError,是否有办法在此评论中附加屏幕截图?更清楚的是,真正的窗口标题是什么?可能是
跟踪™ 3D Plus’
但您使用的是
属性
标题。为什么?在文档中,它说“app.Properties.print\u control\u identifiers()”,但我也尝试了“app.TRACE”™ 3D Plus.print\u control\u identifiers()“当我在命令提示符下运行此命令时,我得到错误,“app.TRACE\u2122 3D Plus.print\u control\u identifiers(),语法错误:标识符中的字符无效”。可能是TM符号未正确识别吗?使用主窗口上的检查工具,我得到Name=TRACE™ 3D Plus和自动化id=rootwindow。那么,我应该使用什么来打印控件标识符呢?如果可能的话,我可以附加inspect屏幕以便您查看吗?在文档中,这只是一个示例(使用另一个目标应用程序和另一个窗口标题!)。在您的情况下,它应该是
app['TRACE™ 3D Plus'].打印控制标识符()
dlg.打印控制标识符()
,如您先前在代码中定义的
dlg
。请仔细阅读《入门指南》的所有章节。它毕竟应该解释完整的图片。我理解《入门》中的打印控制标识符。但只有这样,我才能继续前进,对吗?我还不能获得标识符,我使代码更加简单,首先我只是使用start命令启动应用程序,然后像您所说的那样尝试打印控件标识符。这是我的代码:。从pywinauto导入应用程序app=Application().start(r“C:\Program Files(x86)\Trane\TRACE 3D Plus\TRACE™ 3D Plus.exe“)应用程序['TRACE™ 3D Plus']。打印控制标识符()。