-1

我正在为 Visual Studio C# 桌面应用程序使用 GUI 自动化。那里有 DataGridView,在网格内有组合框和复选框。我尝试使用 pywinauto 将这些自动化,我只能获得网格布局控件,而内部的东西我无法获得控件

(我也尝试使用 print _control_identifiers()、Swapy、AutoIT Window Info 和 winspy ..)

任何人请告诉我如何使用 pywinauto 为桌面应用程序自动化 Visual Studio C# DataGridView 及其子控件?

4

2 回答 2

3

简短的回答是,没有使用 PyWinAuto 自动化 DataGridView 子控件的好方法。

如果您想从 DataGridView 中读取数据(例如读取单元格的文本内容,或者确定是否选中了复选框),那么您完全不走运。如果要控制 DataGridView,可以尝试两种方法:

  • 单击各种坐标偏移。

  • 向它发送按键以模仿键盘导航。

如果您的 DataGridView 中包含少量数据,这些可能会起作用,但是一旦 DataGridView 开始需要滚动条,您就不走运了。此外,单击偏移量对行和列的大小很敏感,如果可以调整列的大小,那么这种方法永远不会可靠。

于 2012-12-31T17:53:25.023 回答
0

试试 0.6.6 版本的 pywinauto,它现在对 datagridview 有更好的支持。https://github.com/pywinauto/pywinauto/releases。不要忘记使用 uia 后端。下面的例子

Application(backend="uia")
于 2019-03-20T15:45:42.313 回答