我希望使用UI自动化或FlaUI从列表项的LegacyIAccessible description属性中获取值。我有以下工作,但它是不一致的。我不知道为什么,但它似乎只有在测试开始前打开目标窗口(使用SpecFlow运行测试)时才有效。
for (int i = 0; i < listbox.Items.Length, i++)
{
itemDesciption = listBox.Items[i].Patterns.LegacyIAccessible.PatternOrDefault.Description;
if (itemDesciption.Contains("value"))
{
targetItem = listBox.Items[i]; )
}发布于 2019-04-18 22:38:55
也许你可以试试这样的东西(基于FlaUI3版本)
[TestMethod]
public void TestMethod2()
{
var app = FlaUI.Core.Application.Launch("WindowsFormsApp1.exe");
app.WaitWhileBusy();
using (var automation = new UIA3Automation())
{
var window = app.GetMainWindow(automation);
var listBox = window.FindFirstDescendant(cf => cf.ByAutomationId("listBox1")).AsListBox();
foreach (ListBoxItem item in listBox.Items)
{
Console.WriteLine(item.Patterns.LegacyIAccessible.Pattern.Description.Value);
}
window.Close();
}
}https://stackoverflow.com/questions/49723531
复制相似问题