sách gpt4 ai đã đi

c# - 在 TestStack.White 中为 CustomUIItem 的子级获取 IUIItem[]

In lại 作者:行者123 更新时间:2023-11-30 21:43:14 30 4
mua khóa gpt4 Nike

WPF 应用程序正在使用应用程序框架,我无法编辑它们。

我可以按照以下方式访问 GUI 中的每个元素:

IUIItem[] items = window.GetMultiple(SearchCriteria.All);
foreach (var item in items)
{
visit((dynamic)item);
}

我对普通控件没有问题,但我用 CustomUIItem 碰壁了。

我想访问它的所有子项,但无法从它们创建新数组 IUIItem[].

这是我现在拥有的:

    void visit(CustomUIItem item)
{
AutomationElementCollection children =
item
.AutomationElement
.FindAll(TreeScope.Children, Condition.TrueCondition);
UIItemCollection temp = new UIItemCollection(children.Cast());
foreach(var t in temp)
{
visit((dynamic)t);
}
}

有时这会抛出并且大多数时候集合仍然是空的。

CusomControl 在其子项中具有“正常”控件。我希望将它们作为常规 IUIItem.

我在哪里可以找到这方面的文档。我唯一找到的是 cái này ,我不能这样做,因为我只是从外部访问,我不知道控件内容。

1 Câu trả lời

如果我真的理解了你的问题。

    IUIItem[] items = window.GetMultiple(SearchCriteria.All);
foreach (var item in items)
{
visit(item);
}

我已经更新了您的 visit() 方法,它现在需要一个 IUItem 作为参数以允许访问普通和自定义控件。

    public void visit(IUIItem item)
{
if (item is CustomUIItem)
{
// Process custom controls
CustomUIItem customControl = item as CustomUIItem;

// Retrieve all the child controls
IUIItem[] items = customControl.AsContainer().GetMultiple(SearchCriteria.All);

// visit all the children
foreach (var t in items)
{
visit(t);
}
...
}
khác
{
// Process normal controls
...
}
}

关于c# - 在 TestStack.White 中为 CustomUIItem 的子级获取 IUIItem[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41881079/

30 4 0
Bài viết được đề xuất: c - 如何更快速地读取TCP数据包?
Bài viết được đề xuất: c# - ListView 显示 4 条记录。 DataGridView 显示 3 条记录?
Bài viết được đề xuất: c# - 带有键名的json字典
Bài viết được đề xuất: c# - 使用嵌套对象时对象初始化器中的赋值顺序
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com