WinAppDriver - невозможно щелкнуть элемент или выбрать элемент в комбинированном окне - PullRequest
0 голосов
/ 25 апреля 2019

В WinAppDriver и VB.NET я пытаюсь выбрать элемент, выбранный в комбинированном списке.Мне нужно выбрать его напрямую, а не с помощью ввода с клавиатуры или перемещения курсора, поскольку это вызывает другие действия программы для элементов, которые не будут выбраны.

Я пытался выбрать элемент с помощью .FindElementByXPath и .click.

Я использовал WinAppRecorder для получения xpath, из которого я удалил ненужные повторяющиеся идентификаторы.Следующие xpath и код работают, чтобы раскрывающийся список выпадающего списка:

Dim xStateCbo As String = "/Pane[@Name=""Desktop 1""][@ClassName=""#32769""]/Window[@AutomationId=""WorkItemForm""]/Window[@AutomationId=""ADlg""]/Pane[@AutomationId=""flpMain""]/Pane[@AutomationId=""pnlTopSection""]/Pane[@AutomationId=""pnlState""]/ComboBox[@AutomationId=""cboState""]"
ProgramSession.FindElementByXPath(xStateCbo).Click()
Threading.Thread.Sleep(1000) 'make sure cbo has time to open

После того, как выпадающий список cbo выпадает, я затем пытаюсь выбрать нужный элемент, нажав на него.

Записывая щелчок с помощью WinAppRecorder, я получаю этот код (преобразованный в VB.NET):

Dim xp4 As String = "/Pane[@Name=""Desktop 1""][@ClassName=""#32769""]/List[@Name=""State of Residence: ""][@ClassName=""ComboLBox""]/ListItem[@Name=""DELAWARE""]"
ProgramSession.FindElementByXPath(xp4).Click()

(Обратите внимание, что xpath для щелчка по элементу в открытом cbo короче, чем для щелчка по cbo впервое место, вероятно, из-за того, что некоторые cbos открываются на более высоком уровне. Я думаю, что это нормально и не связано с проблемой.)

Приведенный выше код должен теперь найти и нажать «DELAWARE» в моем сейчас-Открыть выпадающий список, но вместо этого я получаю стандартное исключение для отсутствия элемента:

System.InvalidOperationException: 'An element could not be located on the page using the given search parameters.'

Это не проблема с регистром, все в cbo написано заглавными буквами.Это не проблема синхронизации, так как я убедился, что cbo полностью раскрыт и заполнен.

Я также пробовал выполнять поиск с помощью кликов также с .FindElementByName и т. Д. И идентификаторов из Inspect.exe., но не повезло и с этими тоже.Мне все равно, какое решение используется для выбора целевых элементов.Я открыт для всего, что работает надежно.

...