2017-02-02 6 views
0

Этот код я не получаю первый доступный RICHEDIT60W:не удается получить название от первого RICHEDIT60W ребенка в Lync

from pywinauto.application import Application 
app = Application().connect(class_name='CommunicatorMainWindowClass') 
window = app.window(class_name='CommunicatorMainWindowClass') 

window.NetUINativeHWNDHost.NetUIHWND.print_control_identifiers() 

print() 
rich_edit = window.NetUINativeHWNDHost.NetUIHWND.NetUICtrlNotifySink.RICHEDIT60W 
print("rich_edit:", rich_edit.WindowText()) 

консоли:

Control Identifiers: 

NetUIHWND - '' (L162, T378, R562, B957) 
['', '1', 'NetUIHWND', '0'] 
child_window(class_name="NetUIHWND") 
    | 
    | NetUICtrlNotifySink - '' (L186, T408, R537, B425) 
    | ['2', 'NetUICtrlNotifySink1', 'NetUICtrlNotifySink', 'NetUICtrlNotifySink0'] 
    | child_window(class_name="NetUICtrlNotifySink") 
    | | 
    | | RICHEDIT60W - '///' (L186, T408, R537, B425) 
    | | ['RICHEDIT60W0', '///RICHEDIT60W', 'RICHEDIT60W1', '///', 'RICHEDIT60W'] 
    | | child_window(title="///", class_name="RICHEDIT60W") 
    | 
    | RICHEDIT60W - '///' (L186, T408, R537, B425) 
    | ['RICHEDIT60W0', '///RICHEDIT60W', 'RICHEDIT60W1', '///', 'RICHEDIT60W'] 
    | child_window(title="///", class_name="RICHEDIT60W") 
    | 
    | NetUICtrlNotifySink - '' (L184, T548, R515, B562) 
    | ['3', 'NetUICtrlNotifySink2'] 
    | child_window(class_name="NetUICtrlNotifySink") 
    | | 
    | | RICHEDIT60W - 'qwerty' (L184, T548, R515, B562) 
    | | ['RICHEDIT60W2', 'qwerty', 'qwertyRICHEDIT60W'] 
    | | child_window(title="qwerty", class_name="RICHEDIT60W") 
    | 
    | RICHEDIT60W - 'qwerty' (L184, T548, R515, B562) 
    | ['RICHEDIT60W2', 'qwerty', 'qwertyRICHEDIT60W'] 
    | child_window(title="qwerty", class_name="RICHEDIT60W") 
    | 
    | NetUICtrlNotifySink - '' (L162, T378, R162, B378) 
    | ['4', 'NetUICtrlNotifySink3'] 
    | child_window(class_name="NetUICtrlNotifySink") 

rich_edit: qwerty 

lync

По элементам списка первый должен был быть «///», а не «qwerty»

В чем проблема?

Как получить товар с помощью «///»?

+0

я могу посмотреть позже, но лучше использовать 'Application (бэкэнд =«ерд»)' для Lync. Подробнее читайте в [Руководство по началу работы] (https://pywinauto.readthedocs.io/en/latest/getting_started.html). –

ответ

0

Оказался, сделать так:

import pywinauto 
window = pywinauto.findwindows.find_element(title_re='Microsoft Lync.*') 
child = window.children()[3] 
print(child.rich_text) # ///