0

UI Automation API を多用するテスト自動化ツールがあります。Windows の最新バージョン (Windows 10 21H2、Windows 11 など) では、APISystem.AccessViolationExceptionが AutomationElement クラスのメソッドの 1 つを呼び出すときに例外をスローすることが発生します。コードは次のとおりです。

AutomationElement uiaElement;
....            
var cr = new CacheRequest
{
    AutomationElementMode = AutomationElementMode.None,
    TreeScope = TreeScope.Element,
    TreeFilter = Automation.RawViewCondition
};
cr.Add(InvokePattern.Pattern);
cr.Add(TogglePattern.Pattern);
cr.Add(RangeValuePattern.Pattern);
cr.Add(ValuePattern.Pattern);
cr.Add(ItemContainerPattern.Pattern);
cr.Add(VirtualizedItemPattern.Pattern);

var cachedElement = uiaElement.GetUpdatedCache(capabilitiesCacheRequest);

そしてスタックトレース: ここに画像の説明を入力

メソッドは( )GetUpdatedCacheから来て、呼び出されたメソッドを呼び出します- このメソッドは例外をスローし、以前のバージョンの Windows ですべてが正常に動作することを考えると、続行する方法がわかりません。AutomationElementUIAutomationClient.dllUIAutomationCore.dllRawUiaHPatternObjectFromVariant

今のところ、この例外を処理しようとしましたが、もちろん長期的には受け入れられません。

言及すべきことの 1 つは、これをテストした Windows の新しいバージョンは両方ともプレビュー/ベータ状態であることです。そのようなバージョンで特定の API が「無効」になっている可能性はありますか (もちろん、壊れている可能性もあります)、そのような状況の経験がある人はいますか? 私は両方について質問しています-System.AccessViolationExceptionを一般的に解決し、ベータ/プレビューリリースでAPIが正しく機能していません。

4

1 に答える 1