使用PyWinAuto进行C#GUI自动化

问题描述 投票:-1回答:2

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

(我试过print _control_identifiers(),Swapy,AutoIT Window Info和winspy也..)

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

c# python ui-automation pywinauto
2个回答
3
投票

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

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

  • 单击各种坐标偏移。
  • 向其发送按键以模仿键盘导航。

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


0
投票

尝试使用pywinauto的0.6.6版本,它现在可以更好地支持datagridview。 https://github.com/pywinauto/pywinauto/releases。别忘了使用uia后端。以下示例

Application(backend="uia")
© www.soinside.com 2019 - 2024. All rights reserved.