【发布时间】:2018-06-10 13:23:57
【问题描述】:
我有一个使用 c++ 和 QT 编写的 GUI 应用程序,并且我使用 selenium + qtwebdriver 进行了 UI 测试。我的 bash 脚本启动应用程序,然后启动 python 测试。问题是,如果我这样写:
./myapp
python mypythonscript.py
Python 脚本会失败,因为“myapp”需要 2 秒才能打开界面。 如果 GUI 应用程序完全运行,我该怎么做才能知道?是否有任何 X 服务器命令可以返回已启动窗口的名称?
【问题讨论】:
-
可以在第一行后添加暂停/睡眠5秒
sleep 5,也可以使用ps和grep查看正在运行的进程 -
是的,我知道这种添加睡眠的方法,但是如果应用程序启动 12 秒会发生什么?我正在寻找通用解决方案。
-
看看这个
https://askubuntu.com/a/157787/791238 -
@Stack 嘿,谢谢你的回答。 pgrep 将显示该进程正在运行,即使 GUI 尚未出现。我需要检测是否显示了 GUI。
-
您的应用程序“知道”其 GUI 何时可见:覆盖您的主小部件的
resizeEvent()。在那里,您可以使用您在启动器中等待的某种类型的进程间通信(例如,创建/更新特定的临时文件)。