使用Qt事件处理程序进行压扁测试

时间:2018-03-01 17:04:57

标签: python qt squish

我正在使用squishtest库来处理我的Python代码中的Qt应用程序,并尝试使用事件处理程序,如下所示:

import squishtest


def handle_mouse_event(event):
    print 'Clicked!'


squishtest.startApplication('application')
squishtest.installEventHandler('QMouseEvent', handle_mouse_event)

不幸的是,这不起作用,即在应用程序内部点击元素时没有任何反应,但是如果我在Squish运行时的Squish IDE中运行相当于此代码的情况下它会起作用:

import squish


def handle_mouse_event(event):
    print 'Clicked!'


squish.startApplication('application')
squish.installEventHandler('QMouseEvent', handle_mouse_event)

有什么区别以及如何让事件处理程序使用squishtest

Python 2.7.14,Squish 6.3.1,Ubuntu 16.04

1 个答案:

答案 0 :(得分:0)

(根据原始海报的建议重新作为答案。)

这适用于Linux和Windows上的Squish 6.3.x +,使用Squish包中的Python安装 - 但不可否认的是,我在脚本末尾添加了一个小睡(5)以便有时间来#34鼠标周围"在应用程序的窗口中,即使是基于鼠标移动的事件也会触发事件处理函数的执行。

使用snooze()的另一个副作用是事件循环不断旋转,使用time.sleep()(后面提到之前已经使用过)时就不是这种情况了。

如果它仍然不起作用,我建议联系froglogic Squish的技术支持。