WinAppDriver: как получить список дочерних элементов для элемента управления ListView - PullRequest
0 голосов
/ 24 мая 2019

Новичок в автоматизации пользовательского интерфейса, используя Appium WinAppDriver в приложении UWP, я пытаюсь найти способ получить список всех элементов в конкретном элементе управления 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;
}
  1. Это правильный подход в целом, или я упустил что-то фундаментальное об этом?Я хочу получить список всех элементов из ListView
  2. Это утверждение: List<WindowElement> y = x.FindElementsByClassName("ListViewItem").ToList(); выдает мне ошибку, поскольку FindElementsByClassName(), по-видимому, возвращает список AppiumWebElement, а не WindowElement

1 Ответ

0 голосов
/ 13 июня 2019

Вместо

List<WindowElement> y = x.FindElementsByClassName("ListViewItem").ToList();

Попробуйте и посмотрите, работает ли оно

var y = x.FindElementsByClassName("ListViewItem");
foreach (var z in y)
{
 string name = z.FindElementByName("itemName").Text;
 string id = z.FindElementByName("itemID").Text;
}

Для моих тестовых случаев FindElements работает только на драйвере, а не на элементе.и всегда возвращает Ilist

...