我想访问窗口任务栏中的按钮(例如IE,资源管理器等)。我需要某个按钮的automationId。
如果我使用了Visual UI Automation工具,则会看到按钮在工具栏“正在运行的应用程序”(MSTaskListWClass类)中。
(对不起,我无法发布图片,因为这是我的第一篇帖子)
我尝试:
>>> taskbar.RunningApplications
<pywinauto.application.WindowSpecification object at 0x02F5C830>
>>> taskbar.RunningApplications.children()
[]
=>我不明白,因为正在运行的应用程序任务栏不是空的(至少是当前的cmd应用程序)
我也尝试:
from pywinauto.application import Application
from pywinauto import Desktop
import pywinauto
import re as regex
def dump(o):
s = ("name %s ClassName %s Hdler %s" % (o.name.encode('utf-8'),o.class_name.encode('utf-8'),hex(o.handle)))
return s
# Point d'entree l 1
l1 = pywinauto.findwindows.find_elements(class_name_re = 'Shell_TrayWnd')
print("Lg %d - %s" % (len(l1),dump(l1[0])))
l2 = pywinauto.findwindows.find_elements(class_name_re = 'ReBarWindow32')
print l2
shell_TrayWnd = l1[0]
l3 = shell_TrayWnd.children()
for i in range(len(l3)):
if regex.search('MSTaskSwWClass',l3[i].class_name):
print ("Fuundl3[%2d] %s" % (i, dump(l3[i])))
listButton = l3[i].children()[0]
print("listButton %s" % (dump(listButton)))
print listButton.children()
这是示例问题:正在运行的应用程序列表似乎为空。
所以我的问题是:
感谢您的想法或建议, PHLinux
答案 0 :(得分:0)
find_elements
是一个不建议直接使用的低级功能(在Getting Started Guide中没有提及)。这段代码对我有用:
from pywinauto import Application
app = Application(backend="uia").connect(title='Taskbar') # backend is important!!!
#app.Taskbar.dump_tree() # was needed for next step, just copied child_window spec from here
running_apps = app.Taskbar.child_window(title="Running applications", control_type="ToolBar")
print([w.window_text() for w in running_apps.children()])
# running_apps.dump_tree() # another debug print for auto_id properties advice