使用PyWinAuto进行C#GUI自动化

时间:2012-12-31 11:36:58

标签: c# python ui-automation pywinauto

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

  • 点击各种坐标偏移。

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

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

答案 1 :(得分:0)

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

Application(backend="uia")