2015-03-20 2 views
1

Я пробую свои первые вещи с pywinauto. Теперь я хочу использовать print_control_identifiers(), но я получаю ошибки, однако я пишу свой код - я не могу получить информацию о объектах графического интерфейса. Я уже пытался сгенерировать код через swapy - у меня было много сгенерированного кода, но успеха не было.Поиск элементов GUI с pywinauto

Это мой код до сих пор:

import getpass, fnmatch 

from pywinauto import application 

currentUser = getpass.getuser() 

if fnmatch.fnmatch(currentUser, "axe"): 
    pwa_app = application.Application() 
    w_handle = application.findwindows.find_windows(title=u'Login - 0.9.347', class_name='WindowsForms10.Window.8.app.0.141b42a_r11_ad1')[0] 
    window = pwa_app.window_(handle=w_handle) 
    window.SetFocus() 
    ctrl = window['Log In'] 
    ctrl.Click() 


else: 
    print "You need admin rights for that action" 

Можете ли вы сказать мне, где мне нужно использовать print_control_identifiers()? Есть ли у вас какие-либо другие рамки автоматизации GUI, которые являются более современными?

+0

Какой выход скрипт? pywinauto может работать со многими элементами управления Windows Forms. –

+0

Почему вы не используете 'pwa_app = application.Application(). Connect_ (path = 'your.exe)'? find_windows считается внутренним персоналом. 'pwa_app.Window_ (title = u'Login - 0.9.347 ', class_name =' ... ')' возвращает почти тот же объект WindowSpecification. –

ответ

1

PrintControlIdentifiers() полезен для окна верхнего уровня. Если window является спецификация окно верхнего уровня, то просто позвоните

window.PrintControlIdentifiers() 

или

pwa_app.Window_(title=u'Login - 0.9.347', top_level_only=True).PrintControlIdentifiers() 
0

Несколько примеров:

Swapy хорошо, чтобы определить свойства. Кроме того, примеры, данные с pywinauto, весьма полезны. Источник: https://pywinauto.googlecode.com/hg/pywinauto/docs/getting_started.html

from pywinauto import application 

app = application.Application.Start("Notepad.exe") 
app.Notepad.print_control_identifiers() 
app.Notepad.MenuSelect("Edit->Replace") 
app.Replace.print_control_identifiers() 

из pywinauto применения импортного

from pywinauto import application 
app = application.Application() 
app.Start("Notepad.exe") 
Wnd_Main = app.window_(title_re=".*Notepad") 
Wnd_Main.MenuSelect("File->Save") 

Wnd_Save = app.window_(title_re="Save As") 
Wnd_Save.Edit1.SetEditText("Hello World.txt") 
Смежные вопросы