等待另一个进程窗口已完全加载

本文关键字:加载 窗口 另一个 进程 等待 | 更新日期: 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),那么我认为这种方法不起作用,但如果你可以修改页面脚本,也许你可以创建一个类似的函数。