Установите флажок просмотра дерева, используя pywinauto 0.5.4

Я использую pywinauto 0.5.4, моя проблема в том, что я не могу проверить, флажки находятся в дереве. Вот код, который я пробую:

>>> from pywinauto import application
>>> app=application.Application()
>>> app.Start("C:\Program Files\ValiFrame.exe")
>>> RxApp= app['N5990A Test Automation Software Platform']
>>> RxApp[u'TreeView'].GetItem([u'PCI Express   -   3.0, Add-In Card'
, u'Receiver', u'5.0 GT/s', u'Lane0', u'Compliance Test']).Check()

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: '_treeview_element' object has no attribute 'Check'

Я пытался использовать Click(), но он просто выделяет текст рядом с флажком.

Вот изображение, показывающее приложение и флажок, который я хочу проверить. Флажки приложения Я использовал SWAPY 0.4.8, чтобы определить элементы управления, но, похоже, в списке нет идентификатора элемента управления. Экран результатов SWAPY

Есть ли способ определить фактический элемент управления флажком и атрибут управления, который фактически устанавливает флажок?


person ramirT    schedule 15.06.2016    source источник


Ответы (1)


Вы можете устанавливать флажки с помощью Click(where='check'). Более подробная документация находится здесь: класс _treeview_element< /а>.

Эти методы могут быть полезны для ваших нужд:

Click(button='left', double=False, where='text', press='') Нажмите на элемент дерева

где может быть любой из «текст», «значок», «кнопка», «галочка» по умолчанию «текст»

ClickInput(button='left', double=False, wheel_dist=0, where='text', press='') Нажмите на элемент дерева

где может быть любой из «текст», «значок», «кнопка», «галочка» по умолчанию «текст»

IsChecked() Возвращает, отмечен ли элемент TreeView или нет.

person Vasily Ryabov    schedule 16.06.2016
comment
Василий, спасибо за ответ. Я попробовал Click(where='check'), но он просто выделяет текст вместо флажка. Когда я вручную нажимаю на флажок, а затем использую IsChecked(), он возвращает True. Если я смогу правильно определить состояние этого элемента, то я надеюсь, что есть способ установить состояние этого элемента. - person ramirT; 16.06.2016
comment
Попробуйте ClickInput(where='check'). TreeView — очень специфический элемент управления, поэтому интерфейс оболочки немного необычен по сравнению с другими. - person Vasily Ryabov; 17.06.2016
comment
Это работает с ClickInput(where='check')? Если нет, я хочу рассмотреть это более подробно. - person Vasily Ryabov; 23.06.2016