我想知道如何才能知道我从Process.Start()启动的另一个应用程序是否已完全加载(所有控件都已准备就绪等),因为WaitForInputIdle似乎无法正常工作...在我的情况下我需要创建自动化元素树,但一些DevExpress应用程序动态创建控件,我不知道如何检查其状态。我也在用WindowPattern和WindowInteractionState检查窗口,但它不能解决问题。
答案 0 :(得分:0)
我认为这取决于应用程序。有些包括会告诉你这个的标志或通信方法,而有些则没有。
答案 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),那么我认为这种方法不会起作用,但是如果你可以修改页面脚本,也许你可以创建一个类似的函数。