【发布时间】:2019-10-11 09:01:08
【问题描述】:
UI 自动化新手,在 UWP 应用程序上使用 Appium WinAppDriver,我试图找到一种方法来获取特定 ListView 控件中所有元素的列表,然后从每个元素中获取值。我可能错了,但在某些WindowElement 之间似乎存在子/父关系,在检查工具中检查特定屏幕时可以看到这种关系。请考虑下面的简化代码:
WindowElement x = session.FindElementsByClassName("ListView").ToList()[1];
List<WindowElement> y = x.FindElementsByClassName("ListViewItem").ToList();
foreach(WindowElement z in y)
{
string name = z.FindElementByName("itemName").Text;
string id = z.FindElementByName("itemID").Text;
}
- 这是一个正确的方法,还是我错过了一些基本的东西?我想从 ListView 中获取所有项目的列表
- 这个语句:
List<WindowElement> y = x.FindElementsByClassName("ListViewItem").ToList();给了我一个错误,因为FindElementsByClassName()显然返回了AppiumWebElement的列表而不是WindowElement
【问题讨论】:
-
AFAIK 这就是 WinAppDriver 的工作方式,只是你不需要调用
ToList()因为 FindElementsByClassName("ListViewItem") 应该给你一个迭代。
标签: c# user-interface automation appium winappdriver