pywinauto:如何使用print_control_identifiers和spy工具显示控制器?

时间:2017-02-19 21:29:44

标签: python python-3.x pywinauto

如何选择此应用程序的菜单并将“hello”写入“All Field& Tags”?

这个应用程序很棘手,它以某种方式嵌入在Firefox中。

app=Application().connect(path='zotero.exe')
app.window(title="Zotero",class_name="MozillaWindowClass").print_control_identifiers()

仅打印:

Control Identifiers:

MozillaWindowClass - 'Zotero'    (L237, T109, R1160, B537)
['ZoteroMozillaWindowClass', 'MozillaWindowClass', 'Zotero']
child_window(title="Zotero", class_name="MozillaWindowClass")

因此它找不到控件,菜单和条目列表(隐藏在间谍窗口后面)。

我试图在很多方面使用上面给出的child_window,比如

app.window(title="Zotero", class_name="MozillaWindowClass").child_window(title="Zotero", class_name="MozillaWindowClass").print_control_identifiers()

(title =“Zotero”,class_name =“MozillaWindowClass”)但失败了。

Accexplorer(你可以得到它here)显示一种名为Application的子区块(它以红色框起)。我也没有找到使用它的方法。

您可以找到此(开源)应用here或来自this page(Zotero 5 for windows。这是一个32字节的应用)。

enter image description here

[编辑] 感谢Vitswd,我可以打印出控件(参见右图)。但是我仍然看不到我正在寻找的控件(例如菜单所需的控件,或者字段“all field& tags”)。此数据库应用程序中有数千个项目,它们都被识别为控件。 python控制台没有处理它们。所以它只打印它的随机部分(当它的时候)。有没有办法可以排除窗口的某些部分或只打印某些特定部分的控件?

Edit2:我没有找到简单的.click()在列表的特定项目上的方法。我没有找到使用docs中给出的pywinauto.findbestmatch.get_control_names(control, allcontrols, textcontrols)的正确语法,但我发现了一些东西:左键单击可以暂停控件。延迟取决于计算机CPU(功能强大的计算机上为1mn)。

使用inspect.exe enter image description here

0 个答案:

没有答案