PyWinAuto - Application()具有相同进程ID的多个窗口

时间:2017-12-07 19:32:44

标签: pywinauto

我的应用程序有5个窗口(1个窗口,4个窗格),它们具有父桌面,并且它们共享相同的process_id。

当我尝试这样的事情时:

for line in pywinauto.findwindows.find_windows(process=proc_id):
    print line  ### this will print all 5 handles of windows
    app = Application().connect(handle=line)   ### this will connect to specific handle
    app.top_window().set_focus()    ### this will set focus ONLY to one window and bring it to forward
    time.sleep(5)

这个FOR循环应该每5秒提前一个窗口(1个control_type =" Window" element和4time control_type =" Pane"元素)但是这只会带来一个窗口转发没有别的,它将获得5倍的关注。没有改变窗户。

感谢

1 个答案:

答案 0 :(得分:0)

因为top_window()总是选择第一个顶部窗口。您对此方法还有什么期望?无论如何,我们计划重新设计或删除它。

适用于您的目的的方法是app.windows():

for w in app.windows():
    print(w.window_text())
    w.set_focus()

注意:app.windows()返回包装器列表,因此只能列出.children()或.descendants(),而无需高级隐式等待和更详细的搜索规范。