0

WaitForInputIdle が機能していないように見えるため、Process.Start() から起動した別のアプリケーションが完全にロードされている (すべてのコントロールの準備が整っているなど) かどうかを知る方法を知りたいと思っていました...私の場合、作成する必要がありますAutomation Elements ツリーですが、一部の DevExpress アプリはコントロールを動的に作成し、その状態を確認する方法がわかりません。WindowPattern と WindowInteractionState でウィンドウもチェックしていますが、うまくいきません。

4

2 に答える 2

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 に答える