2013-03-25 69 views
2

我正在使用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()) 

无济于事....

回答

1

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

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

0

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

相关问题