等待另一个进程窗口已完全加载
本文关键字:加载 窗口 另一个 进程 等待 | 更新日期: 2023-09-27 18:26:40
我想知道我从Process.Start()启动的另一个应用程序是否已完全加载(所有控件都准备好了等等),因为WaitForInputIdle似乎不工作。。。在我的情况下,我需要创建Automation Elements树,但一些DevExpress应用程序会动态创建控件,我不知道如何检查其状态。我也在用WindowPattern和WindowInteractionState检查窗口,但它没有起到作用。
我认为这取决于应用程序。有些包含会告诉你这一点的标志或通信方法,而另一些则没有。
源
您没有说明是否使用DevExpress expressAppFramework,但根据我对XAF 12.1及更高版本的经验,有一个函数xafHasPendingCallbacks()
。如果你能找到查询这个函数的方法,你应该能够验证DevExpress回调是否完整。
例如,对于Selenium,我使用
function waitForCallbacks() {
selenium.waitForCondition("typeof selenium.browserbot.getUserWindow().xafHasPendingCallbacks == 'function';", timeout);
selenium.waitForCondition("selenium.browserbot.getUserWindow().xafHasPendingCallbacks() == false;", timeout);
}
如果你使用的是普通的DevExpress控件(没有XAF),那么我认为这种方法不起作用,但如果你可以修改页面脚本,也许你可以创建一个类似的函数。