Автоматизируйте электронные таблицы DevExpress / GridViews с WinAppDriver - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь автоматизировать приложение WinForm с помощью WinAppDriver (https://github.com/Microsoft/WinAppDriver).

Это приложение использует DevExpress. Мне нужно правильно обрабатывать элементы управления Spreadsheet или GridViews из DevExpress. Единственное возможное решение, которое я нашел, этодля взаимодействия с действиями и перемещения мыши в определенное место на экране, но есть две проблемы:

  1. Получить / установить данные для определенной строки / столбца
  2. Возможно, приложение работаетна разных разрешениях экрана, поэтому местоположения X, Y не будут совпадать.

Может ли кто-нибудь помочь мне с этим?

Код для взаимодействия с электронной таблицей:

 _driver.Current.FindElementByName("FormContainer").Click();
 var spread = _driver.Current.FindElementByAccessibilityId("spreadsheet");
 Actions ac = new Actions(_driver.Current);
 ac.MoveToElement(spread).MoveByOffset(-600,-220).Click().SendKeys("11").Build().Perform();

1 Ответ

0 голосов
/ 04 апреля 2019

Просто столкнулся с той же проблемой сегодня.Если ваш spreadsheetcontrol имеет связанный spreadsheetnamebox, обходной путь состоит в изменении текстового значения namebox.

Если вы установите значение namebox для редактирования, например, A6 (гораздо проще достичь ;-)), фокус будет установлен в ячейке A6 в spreadheetcontrol.Простой session.Keyboard.SendKeys позволит вам изменить значение ячейки.

Вы также можете использовать formulabarcontrol для чтения / записи содержимого ячейки.Но без этих двух элементов управления я не нашел другого надежного решения для автоматизации spreadsheetcontrol (обратите внимание, что такая же проблема возникает с автоматизацией тестирования Microsoft Excel ...).

...