等待另一个进程窗口已满载

时间:2013-08-07 12:59:25

标签: c# process devexpress wait

我想知道如何才能知道我从Process.Start()启动的另一个应用程序是否已完全加载(所有控件都已准备就绪等),因为WaitForInputIdle似乎无法正常工作...在我的情况下我需要创建自动化元素树,但一些DevExpress应用程序动态创建控件,我不知道如何检查其状态。我也在用WindowPattern和WindowInteractionState检查窗口,但它不能解决问题。

2 个答案:

答案 0 :(得分:0)

我认为这取决于应用程序。有些包括会告诉你这个的标志或通信方法,而有些则没有。

Source

答案 1 :(得分:0)

您没有说您是否使用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),那么我认为这种方法不会起作用,但是如果你可以修改页面脚本,也许你可以创建一个类似的函数。