0

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

4

2 回答 2

0

我相信这取决于应用程序。有些包括可以告诉您这一点的标志或通信方法,而有些则没有。

资源

于 2013-08-07T13:07:41.020 回答
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),那么我认为这种方法行不通,但是如果您可以修改页面脚本,也许您可​​以创建一个类似的功能。

于 2013-08-07T14:19:30.323 回答