为什么我不能将控制标识符写入文件或将它们分配给字符串或列表

时间:2013-03-25 15:53:15

标签: python pywinauto

我正在使用pywinauto列出特定应用程序的控件标识符。我能做到的就好了。但是,我想将这些控件标识符保存到文件中,或者更好地将它们分配给字符串或列表,但不能编写它们或分配它们....有没有人知道以编程方式将这些标识符写入文件或内存的方法?

示例代码:

import os
import time
from pywinauto import application
from SendKeys import SendKeys


app=application.Application()
app.start_(r"C:\Program Files\myapp.exe")


app.dlg.print_control_identifiers()

Control Identifiers:
Button - 'Exit'   (L900, T649, R975, B672)
        'Button' 'Button0' 'Button1' 'Exit' 'ExitButton'
Button - 'About'   (L339, T646, R410, B672)
        'About' 'AboutButton' 'Button2'
...
...
...

我尝试了以下内容:

my_App_ci = app.dlg.print_control_identifiers()

my_App_ci = []
my_App_ci.append(app.dlg.print_control_identifiers())

无济于事....

2 个答案:

答案 0 :(得分:1)

print_control_identifiers打印到stdout而不是返回字符串。我快速查看了源代码,我看不到任何函数将它们作为字符串,这是非常糟糕的设计恕我直言。

您可以通过将sys.stdout重新分配给StringIO对象并从中获取字符串来捕获信息。或者阅读源代码以查看print_control_identifiers的作用,并创建一个返回字符串列表的版本。

答案 1 :(得分:1)

您可以使用print_control_identifiers(filename =“path \ to \ your \ desktop \ file.txt”)