1

次のUIAUtomationコードを使用してコンボボックスのリストアイテムを取得しようとしていますが、ゼロのアイテムが返されます。このcomobboxには確かにアイテムがありますが、何が間違っているのでしょうか。

var comboBox = GetMarketAreasComboBox();
var items = comboBox.FindAll(TreeScope.Element, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.ListItem));

GetMarketAreasComboBoxは次のように定義されています。

private AutomationElement GetMarketAreasComboBox()
{
    var control = LocalRootAutomationElement.FindFirst(TreeScope.Descendants , new PropertyCondition(AutomationElement.AutomationIdProperty, "MarketAreasComboBox"));
    Assert.IsNotNull(control);
    return control;
}
4

2 に答える 2

2

リスト アイテムの要素がまだメモリに読み込まれていない可能性があります。ComboBox を展開し、ListItem 要素を確認します。

var comboBox = GetMarketAreasComboBox();
var comboBoxPattern = (ExpandCollapsePattern)comboBox.GetCurrentPattern(ExpandCollapsePattern.Pattern);
comboBoxPattern.Expand();
comboBoxPattern.Collapse();
var items = comboBox.FindAll(TreeScope.Element, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.ListItem));
于 2011-07-22T16:54:39.267 に答える
1

私が試したいくつかのこと 1.コンボボックスがnullでないかどうかを確認します 2.comboBox.FindAllの子孫に範囲を変更します。3.リスト項目が実際にコンボボックスの下にロードされているときにコードパスをヒットしていることを確認してください(上記のjvanbrakelが提案したように展開が必要な場合があります)

于 2014-11-15T20:07:26.153 に答える