【发布时间】:2018-03-01 17:04:56
【问题描述】:
我正在使用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
【问题讨论】:
-
这适用于我在 Linux 和 Windows 上使用 Squish 6.3.x+,使用 Squish 包中的 Python 安装 - 但不可否认,我在脚本末尾添加了一个 snooze(5) 有一些是时候在应用程序的窗口上“鼠标移动”了,那么即使是基于鼠标移动的事件也会触发事件处理函数的执行。如果还是不行,建议联系 froglogic Squish 的技术支持。
-
@frog.ca 我首先使用了
time.sleep的无限循环,但现在尝试了snooze,它可以工作。可能睡眠以某种方式阻塞了事件循环。您可以发布您的评论作为答案,因为它可能回答了我的问题。