Комментарии 10
Пытался использовать, но пришлось бросить: задача была
и вот буквально на каждом из трёх последних шагов было по проблеме.
Приходилось ли вам решать схожие задачи?
Как решали?
DragFileFromExplorerToBrowser(string fileName) { var explorerWindow = OpenExplorerInFolder(defaultFolder); // запускаем explorer.exe и открываем нужную нам папку var chromeWindow = OpenChrome(testPageAddress); // запускаем хром на странице с тестом AllignWindows(); // чтобы окна не перекрывали друг друга и не были закрыты другими окнами var fileToDrag = explorerWindow.FindFileInFilelist(fileName); // получаем элемент файла который мы будем перетаскивать var dropZone = chromeWindow.getContentCenter(); // получаем центр тестовой страницы DragAndDrop(fileToDrag, dropZone) // перетаскиваем файл в центр страницы }
и вот буквально на каждом из трёх последних шагов было по проблеме.
Приходилось ли вам решать схожие задачи?
Как решали?
Буквально пару раз сталкивались с задачей автоматизации подобного кросс-продуктового сценария, но затрат получалось куда больше, чем полезности и мы не брались за это :)
explorer.exe можно автоматизировать с помощью pywinauto. Вот здесь пример, как в Control Panel залезть через explorer.exe. Есть пример на drag-n-drop, правда, для tree view, но можно и под list view переделать.
Размеры окон выставить — ноу проблем. А вот с хромом пока что сложности: в нём «контролы» не нативные, а поддержка UIA в pywinauto пока ещё в проекте. Собственно, в окно хрома кинуть файл — легко. А вот вбить нужный URL в табу хрома придётся другими средствами. Равно как и проверять изменения странички.
Размеры окон выставить — ноу проблем. А вот с хромом пока что сложности: в нём «контролы» не нативные, а поддержка UIA в pywinauto пока ещё в проекте. Собственно, в окно хрома кинуть файл — легко. А вот вбить нужный URL в табу хрома придётся другими средствами. Равно как и проверять изменения странички.
Спасибо, посмотрю в его сторону.
На самом деле, два года назад такой сценарий было невозможно написать с помощью pywinauto (так что я вас зря тогда обнадежил), а осенью 2016-го стало возможно. Вот пример, написанный моим студентом. С Хромом вскрылся ряд моментов, в частности ключ, с которым его нужно запускать, чтобы он рендерил страницы с поддержкой UI Automation.
Ну, и для полноты есть подобный хоть и неидеальный пример на Cruciatus на C# (думаю, можно существенно улучшить, просто руки не дошли).
Ну, и для полноты есть подобный хоть и неидеальный пример на Cruciatus на C# (думаю, можно существенно улучшить, просто руки не дошли).
Подскажите, проект жив? Судя по репозиторию, 2 года релизов не было. Если уже поддержки нет, то посоветуйте на какие инструменты смотреть?
Жив в текущем состоянии :) его пользуют, периодически вопросы задают. Но постоянная поддержка и развитие приостановилось, так как разработчики переключились на другое направление (в том числе я).
Из годных топ-12 вот отсюда: https://github.com/pywinauto/pywinauto/wiki/UI-Automation-tools-ratings Из них pyautogui, sikuli и lackey работают фактически только с картинками, autopy — вообще только с голой мышкой и клавиатурой. Остальные в той или иной степени с текстовыми свойствами элементов (как правило, на одной оси). Из быстрорастущих тулов под C# можно отметить молодой проект FlaUI, автор которого занимался поддержкой TestStack.White, но плюнул и решил сделать с нуля.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Winium.Desktop: Selenium для desktop-приложений под Windows