!模拟按钮单击 - 处理对象/类/事件

时间:2013-11-25 01:06:01

标签: events button click wxpython

我有一个python模块abc.py,它有许多类和一些来自其他类的类。整个文件具有通过对象/实例化相互连接的类。

函数调用都基于GUI按钮单击。因此,当单击按钮时,函数会在abc.py中调用。

我需要编写一个与按钮点击功能完全相同的脚本,但是如果没有我点击实际的GUI,你可以想象它是自动化的。

问题是,GUI上的按钮,单击时,触发事件,按钮与函数调用“def button_press”关联,后者将(self,event)作为参数。

我如何通过自我和事件传递?我想按原样使用模块“abc.py”中的类/函数,并模拟按钮点击..你能给我一些关于如何做到这一点的指示吗?

由于

2 个答案:

答案 0 :(得分:0)

你可以:

  1. 创建一个合适的事件,用你的测试数据填充它,然后在你的gui中调用self.button_press(your_test_event)。

  2. 如上所述,但是从你的gui调用之外,app.topframe..button_press(your_test_event),

  3. 如果您的事件处理程序不使用事件中的任何数据,那么如果您使用def button_press(self,evt = None),您可以先执行a或b而不先创建事件,

  4. 您可以使用任何一款优秀的python GUI测试工具 - 其中一些工具列于here

答案 1 :(得分:0)

您可能希望查看wx.PostEvent以将事件发送到按钮。或者如果您使用的是wxPython 2.9.2或更高版本,那么您可以使用新的UIActionSimulator,您可以在这里阅读:

我听过很多人使用sikuli进行GUI测试。还有COBRA,我一直看到在测试的Python用户组中列出了作为GUI测试的工具,尽管我不完全确定你是否可以在wxPython应用程序上使用它。