使用pywinau查找GUI元素

2024-09-29 01:29:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用pywinauto尝试我的第一件事。 现在我想利用print_control_identifiers()但是我得到了错误,但是我编写了代码-我不能得到任何关于GUI对象的信息。 我已经试过通过swapy生成代码了-生成了很多代码,但是没有成功。

到目前为止这是我的代码:

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自动化框架?


Tags: 代码importappapplicationguiwindowcontrolpwa
2条回答

PrintControlIdentifiers()对于顶级窗口很有用。如果window是顶级窗口规范,那么只需调用

window.PrintControlIdentifiers()

或者

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

举几个例子:

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")

相关问题 更多 >