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