为什么不能将控件标识符写入文件或赋值给字符串或列表
我正在使用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 个回答
7
你可以使用这个命令:print_control_identifiers(filename="路径\到\你的\桌面\文件.txt")
3
print_control_identifiers这个函数是把信息直接打印到标准输出(也就是屏幕)上,而不是把它作为字符串返回。我简单看了一下源代码,发现没有任何函数可以把这些信息获取为字符串,这在我看来设计得真不怎么样。
你可以通过把sys.stdout重新指向一个StringIO对象来捕获这些信息,然后从这个对象中获取字符串。或者你可以查看源代码,看看print_control_identifiers到底做了什么,然后自己写一个返回字符串列表的版本。