Как выбрать элемент из ComboBox с помощью WinAppDriver?

Обычно для веб-приложения, если мы хотим выбрать опцию из утопления, мы используем метод SelectElement.

Но в приложении Windows, когда я попытался использовать метод SelectElement, я получил следующую ошибку:

OpenQA.Selenium.Support.UI.UnexpectedTagNameException: элемент должен был быть выбран, но был ControlType.ComboBox

Итак, для приложения Windows, как выбрать элемент из раскрывающегося списка ComboBox?


person Ankit Rathi    schedule 15.07.2020    source источник
comment
Спасибо за обновление вопроса, сэр!   -  person MickyD    schedule 16.07.2020


Ответы (2)


Есть два способа выбрать элементы в раскрывающемся списке Combobox:

  1. Используя клавиши клавиатуры, если элементы не имеют уникального атрибута и значения:

    WindowsElement comboBoxElement = session.FindElementByClassName("ComboBox");
    comboBoxElement.Click();
    comboBoxElement.SendKeys(Keys.Down);
    comboBoxElement.SendKeys(Keys.Enter);
    
  2. Используя раскрывающийся список Element, если он имеет уникальный атрибут и значение:

    WindowsElement comboBoxElement = session.FindElementByClassName("ComboBox");
    comboBoxElement.Click();
    comboBoxElement.FindElementByAccessibilityId("Light Dismiss").Click(); 
    
person Ankit Rathi    schedule 15.07.2020
comment
Использование SendKey не является элегантным способом, потому что вы должны помнить, где вы находитесь в списке со списком, но он работает. - person Amir Touitou; 22.07.2020

Вы также можете использовать само имя элемента combobox в SendKeys:

WindowsElement comboBoxElement = session.FindElementByClassName("ComboBox");
comboBoxElement.SendKeys("combobox item name");
person dostavka2008    schedule 11.08.2020