【问题标题】:! Simulating a button click - dealing with objects/classes/events!模拟按钮点击 - 处理对象/类/事件
【发布时间】:2013-12-09 14:26:01
【问题描述】:

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

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

我需要编写一个脚本来执行与单击按钮完全相同的功能,但无需我单击实际的 GUI - 你可以想象它是自动化的。

问题是,GUI 上的按钮在单击时会触发一个事件,并且该按钮与一个函数调用“def button_press”相关联,该函数调用将 (self, event) 作为参数。

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

谢谢

【问题讨论】:

    标签: events button click wxpython


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您可以:

      1. 创建一个适当的事件,用您的测试数据填充它并从您的 gui 中调用 self.button_press(your_test_event)。

      2. 如上,但来自您的 gui 调用 app.topframe..button_press(your_test_event),

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多