Habr Geektimes Toster Moikrug Freelansim
.NET Knowledge Base
  • Posts
  • Users
  • Hubs
  • Companies
  • Become an author
Log in Sign up
5.0
Karma
0.0
Rating
9
Followers
4
Following

Василий Рябов vasily-v-ryabov

Python, UI automation, pywinauto

Profile

Posts 2

Comments 65

Bookmarks 256

  • List Comprehension vs Map
    24
    vasily-v-ryabov yesterday at 07:15 AM
    +1
    Спасибо! Как раз хотел сказать, что list comprehension читабельнее и проще для понимания на мой личный вкус. Поэтому я почти всегда за него. В статье по ссылке это тоже есть.
  • Японцы из NICT представили рабочий оптоволоконный кластер с пропускной способностью в 1 Пбит/с
    8
    vasily-v-ryabov November 6, 2019 at 01:54 PM
    0

    Стучатся — не значит, что полностью завоевали рынок. Серверные свитчи с 10Г есть уже пару лет, хоть и дороги. Пользовательский сегмент подтянется очень скоро (в основном, продукты анонсированы или будут в ближайшее время). Доступны в России пока только high end материнки (в основном, геймерские) и PCIe карточки с 10Г. NAS'ы уж больше года есть с 10Г (мне кажется, это наиболее реальное применение на данный момент, хоть оно и не массовое).

  • Японцы из NICT представили рабочий оптоволоконный кластер с пропускной способностью в 1 Пбит/с
    8
    vasily-v-ryabov November 1, 2019 at 12:44 AM
    +1
    5 и 10 Гбит уже стучатся на массовый рынок обычного Ethernet. Провайдеры не дают даже 1 Гбита. Отставание — на полтора поколения. Хотя 200-400 Мбит уже появились в тарифах. Был бы канал, а чем забить — найдётся. :)
  • Сравнение BDD фреймворков Python: плюсы и минусы
    8
    vasily-v-ryabov July 16, 2019 at 08:43 AM
    +1
    Спасибо за обзор. Только step все-таки лучше перевести как «шаг». «Поступок» прямо совсем как от машинного перевода смотрится.
  • Каково быть мейнтейнером свободного ПО
    259
    vasily-v-ryabov April 24, 2019 at 12:55 AM
    +1
    Эффективность обратной связи зависит от мейнтейнера и времени на это. Может ли человек слышать простых юзеров, видит ли идеи даже в некорректном на первый взгляд использовании софта. И, кстати, юзеры бывают весьма благодарны за хорошее отношение (или сервис, кто как воспринимает, даже при отсутствии платы это сервис, я считаю), даже если не все быстро получается.
  • Хабрамегарейтинг: лучшие статьи и статистика Хабра за 12 лет. Часть 2/2
    39
    vasily-v-ryabov March 2, 2019 at 10:48 PM
    0
    Спасибо, только сейчас узнал, что есть хабрастатьи на английском. При подписке на узкий список хабов можно что-то упустить.

    Кстати, заметил два дубликата в списке по относительному рейтингу: «Про системного администратора, обыски...» и «Русский н##бизнес».
  • Мы всего лишь боремся со смертью, а вы? Или компании, которые развивают фантастическую медицину
    30
    vasily-v-ryabov December 16, 2018 at 08:42 AM
    0
    Из наших Genotek. Там полное секвенирование генома стоит 250 тыр. У BioNova, кстати, дешевле, около 150 на наши деньги, но это в штатах. Спасибо за обзор!
  • Чудной трюк, чтобы сделать день мейнтейнеру Open Source-проекта
    16
    vasily-v-ryabov November 6, 2018 at 10:25 AM
    +3
    Да, конечно, неплохо. Особенно, если проект небольшой и юзеров не так много, даже простое спасибо мотивирует. Но хорошо бы ещё ставить проекту звездочку. Это из программы минимум по заявкам зажравшихся мейнтейнеров. :)
  • Первый в России робот-завод и при чём тут колбаса?
    122
    vasily-v-ryabov October 30, 2018 at 07:10 PM
    0

    Прошу прощения. Видимо, я слишком далёк от мира IoT. Не знал про этот термин. Подумал греншным делом, что cloud так перевели.

  • Первый в России робот-завод и при чём тут колбаса?
    122
    vasily-v-ryabov October 30, 2018 at 11:22 AM
    +1
    Туманные вычисления порадовали. :)
  • Интересности и полезности python
    44
    vasily-v-ryabov September 3, 2018 at 01:45 PM
    0

    Уже куплена неделю назад. :) И коллегам нравится. На Хабре как раз месяц назад статья была с отрывком из неё, так и нашёл.

  • Интересности и полезности python
    44
    vasily-v-ryabov September 1, 2018 at 05:16 PM
    +2
    Хороший обзор, скину коллегам почитать. Из мелочей: вроде frozenset через z, и вот этот код можно было бы детальнее прокомментировать:
    def func(first, second, *, kwonly):
  • Бинарные модули для Python
    15
    vasily-v-ryabov August 30, 2018 at 07:19 AM
    0
    Насчёт “GDB с плагином к Python” — это может быть чересчур, если есть Visual Studio 2017, которая поддерживает mixed Python+C отладку (это есть ещё с VS 2015 вроде, но там это сильно торомозило и роняло студию, насколько я помню).
  • Flaky tests
    15
    vasily-v-ryabov August 21, 2018 at 03:56 PM
    0

    Отличная статья! По примеру 4: есть аналогичная фишка в Python (разница между time.time() и timeit.default_timer() — такая же, и мы это видели отнюдь не в UI тестах, мы железо тестируем), ещё там же заметил опечатку в коде: в первом куске long en (должно быть long end).

  • UI-автотесты: как делать не стоит
    64
    vasily-v-ryabov August 9, 2018 at 01:00 AM
    0

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

  • UI-автотесты: как делать не стоит
    64
    vasily-v-ryabov August 9, 2018 at 12:54 AM
    0

    Рейтинг тупо по звёздам на гитхабе. Ниже ещё есть по вопросам на StackOverflow, но там я про Appium забыл. В следующем месяце добавлю, он там будет лидером. :)

  • UI-автотесты: как делать не стоит
    64
    vasily-v-ryabov August 9, 2018 at 12:51 AM
    0

    Так получилось, что pywinauto я использую с 2010 года и начал поддерживать его в опен сорсе с лета 2015-го. Поддержку UIA мы выпустили в ноябре 2016-го, а WinAppDriver появился весной 2016-го. Узнал я про WinAppDriver в июне 2017-го. В этом году гонка продолжается. Мы уже год работаем над "record-replay" фичей (планируем релизить осенью, думали, что будем первыми в опен сорсе с подобным), а Microsoft взял да и выпустил свой UI Recorder в июне этого года. Правда, я его пробовал и пока не смог получить ничего вменяемого.

  • UI-автотесты: как делать не стоит
    64
    vasily-v-ryabov August 9, 2018 at 12:44 AM
    +1

    Вообще, умеет. Как раз майкрософтовский WinAppDriver совместим с Appium, и там есть на 14-м месте appium-for-mac. :)

  • UI-автотесты: как делать не стоит
    64
    vasily-v-ryabov August 9, 2018 at 12:02 AM
    +1

    А десктоп мало чем тестируется, и не всякий. Из юзабельных — топ-12 из рейтинга, который я обновляю раз в месяц. На каждой оси — свои технологии доступа к текстовым свойствам. На Windows большинство покрывается технологией MS UI Automation API: она сложна, поэтому есть более простые в освоении библиотеки (это pywinauto, TestStack.White, MS WinAppDriver, FlaUI и Winium.Desktop). На Линуксе это AT-SPI, но там реально простых библиотек пока нет, есть зубодробительные. На макоси есть встроенный AppleScript и pyatom — очень даже годный, хоть и Python2.7 только и в установке не очень прост. Я со своими студентами пытаюсь все эти технологии собрать в pywinauto в максимально простом виде, тут ещё 2-3 года работы, учитывая, что это хобби (на основной работе я сейчас вообще не GUI занимаюсь). Ещё есть распознавалки эталонных картинок типа Sikuli, pyautogui, lackey. Они менее надёжны и подкушивают CPU, но зато универсальней не придумаешь.

  • UI-автотесты: как делать не стоит
    64
    vasily-v-ryabov August 7, 2018 at 10:53 PM
    +2

    Привет от декстопников. Для десктопного UI точно так же полезно детальнее указывать, где именно находится кнопка, какой у неё class_name, title и так далее. Какие-то вещи вроде ControlID или обычного индекса лучше не использовать. В общем, некоторые отличия разве что в списке стабильных и не очень стабильных пропертей/локаторов.


    Что касается вменяемых ошибок, то это вообще к любому коду относится, не только к тестам.

  • Winium.Desktop: Selenium для desktop-приложений под Windows
    10
    vasily-v-ryabov July 25, 2018 at 03:10 AM
    0

    Ну, и под инфраструктуру Selenium есть майкрософтовский WinAppDriver. Они нас внезапно опередили с релизом UI Recorder'а — они пока единственные с такой фичей в опен сорсе (правда, я ещё не пробовал, но полагаю, что он тоже на текстовых свойствах, иначе смысла нет).

  • Winium.Desktop: Selenium для desktop-приложений под Windows
    10
    vasily-v-ryabov July 25, 2018 at 03:07 AM
    0

    Из годных топ-12 вот отсюда: https://github.com/pywinauto/pywinauto/wiki/UI-Automation-tools-ratings Из них pyautogui, sikuli и lackey работают фактически только с картинками, autopy — вообще только с голой мышкой и клавиатурой. Остальные в той или иной степени с текстовыми свойствами элементов (как правило, на одной оси). Из быстрорастущих тулов под C# можно отметить молодой проект FlaUI, автор которого занимался поддержкой TestStack.White, но плюнул и решил сделать с нуля.

  • Автоматизируем десктопный GUI на Python + pywinauto: как подружиться c MS UI Automation
    11
    vasily-v-ryabov June 12, 2018 at 11:55 AM
    0

    SWAPY сейчас не поддерживается. Он совместим только со старой версией pywinauto 0.5.4, где был единственный backend="win32" и все методы в стиле CamelCase. Вроде бы на третьем питоне он работал. В любом случае, pywinauto 0.5.4 работает на третьем питоне, как и более новые.


    Вообще, у меня студенты набросали инспектор объектов: https://github.com/pywinauto/py_inspect
    Всего на 150 строк кода. Правда, полуручного генератора скриптов там нет, зато можно переключать бэкенды. В будущем мы хотим вернуться к нему и полноценно встроить в экосистему, если раньше кто-нибудь не поможет.


    Сейчас главные приоритеты — это генератор скриптов в стиле "record-replay" и поддержка Линукса.

  • Автоматизируем десктопный GUI на Python + pywinauto: как подружиться c MS UI Automation
    11
    vasily-v-ryabov June 12, 2018 at 11:05 AM
    0

    На здоровье! Осталось только machine learning прикрутить. :) Акциями же торгуют боты, почему мебелью нельзя?

  • Знакомимся с хакерспейсом Нижнего Новгорода, CADR. Часть 2
    4
    vasily-v-ryabov June 9, 2018 at 11:05 PM
    +1
    Отличное начинание, молодцы! Но сайт у вас не работает. :( И ещё вопрос: насколько строгий у вас пропускной режим? Ну, и все остальные вопросы, которые на сайте, наверно, отражены.
  • Как я писал графического бота и во что это превратилось. PengueeBot
    16
    vasily-v-ryabov May 5, 2018 at 12:56 AM
    0
    Ещё странно, что не рассмотрен Sikuli, который как раз под Jython заточен и весьма известен. Или я что-то пропустил спросонья. Под чистый CPython есть его аналог Lackey, который, впрочем, кривоват и плохо уживается с другими библиотеками. Не уверен, что Sikuli может юзать GPU, да и кэш скорее всего тоже пришлось бы писать.
  • Как с помощью трех открытых проектов написать диплом
    14
    vasily-v-ryabov February 8, 2018 at 07:59 PM
    0

    Сами студенты занимаются именно разработкой, а не продвижением. Если студент толковый, то примерно за первые полгода он уже может научиться писать достаточно чистый и качественный код с юнит тестами (по крайней мере, в рамках проекта), дальше только помогаешь технические проблемы решать и задаешь направления. Как-нибудь напишу об этом статью, наверно.

  • Как с помощью трех открытых проектов написать диплом
    14
    vasily-v-ryabov January 28, 2018 at 09:17 AM
    0
    Хороший способ и студентов прокачать, и проекты продвинуть. Сам активно привлекаю студентов для проекта по автоматизации десктопного GUI. Впрочем, для Embedded систем навряд ли что-то такое осуществимо в ближайшее время.
  • Десктопные GUI-тесты на Python. Лекция в Яндексе
    9
    vasily-v-ryabov January 17, 2018 at 02:00 PM
    0

    Грустная история. Мне как раз интересно было, как ребята Яндекс.Браузер тестируют…
    История с велосипедом, оставшимся внутри компании, не нова. Почему-то мало кто опен сорсит код в этой нише.

  • Preview документов в программе на Python
    6
    vasily-v-ryabov December 17, 2017 at 08:06 PM
    0

    Возможно, в этом конкретном случае comtypes и бессилен (пардон, пока не вникал глубоко), но он точно умеет больше, чем win32com.client. Мы его используем, подгружая UIAutomationCore.dll, где тоже нет IDispatch.

  • Preview документов в программе на Python
    6
    vasily-v-ryabov December 16, 2017 at 03:28 PM
    +1
    Если нет IDispatch интерфейса, то самый универсальный вариант — pip install comtypes. И не нужно никакой компиляции. Единственный минус — на Py3.5 и Py3.6 не всегда работает, но фикс уже смерджили в мастер.
  • Автоматизируем десктопный GUI на Python + pywinauto: как подружиться c MS UI Automation
    11
    vasily-v-ryabov October 17, 2017 at 08:59 PM
    0

    Такого мнения ещё не встречал. Так что на этом месте прошу подробнее. Просто не нравится или мешает чему-то конкретному?

  • Как устроено тестирование BIM-системы Renga
    4
    vasily-v-ryabov October 7, 2017 at 05:28 PM
    0
    Приятно видеть, что используете pywinauto. Если нужна консультация, обращайтесь. Странно, что платные инструменты не видят Qt элементы. Если это Qt5, то даже pywinauto сможет многое увидеть. Опять же, есть Inspect.exe — все, что он видит, увидит и pywinauto. Только нужно использовать backend=«uia».
  • Десктопные GUI-тесты на Python. Лекция в Яндексе
    9
    vasily-v-ryabov September 3, 2017 at 08:01 PM
    0

    Можно. Впрочем, недавно нашёл способ проще: через удалённый psexec с ключом -i. Работает всегда и без бубнов с VNC сервером. Хоть из-под Jenkins, хоть из-под Ansible.

  • Десктопные GUI-тесты на Python. Лекция в Яндексе
    9
    vasily-v-ryabov August 28, 2017 at 06:43 PM
    0

    О, спасибо за полную расшифровку доклада! В картинках оно явно лучше зашло, чем скучным текстом.

  • Десктопные GUI-тесты на Python. Лекция в Яндексе
    9
    vasily-v-ryabov August 28, 2017 at 06:41 PM
    +1

    Можно. Нормальная ссылка на чат.
    Нормальная ссылка на слайды (там всё clickable).

  • Вызов управляемого кода из неуправляемого
    44
    vasily-v-ryabov August 15, 2017 at 05:24 PM
    0

    Да, и это тоже, кстати. Спасибо!

  • Вызов управляемого кода из неуправляемого
    44
    vasily-v-ryabov August 15, 2017 at 05:13 PM
    +1

    Кто начал разбираться, мог бы погуглить. Подобная статья уже была на Хабре в 2011-м: https://habrahabr.ru/post/130690/ Тогда она была более своевременной, хоть и написана более сложным языком. Если есть цель сделать хорошую обучающую статью (это хорошая цель), то здесь объём всё же маловат для целой статьи. Если это отправная точка подхода, можно было и про подход развернуть. Опять же, сугубо моё мнение.

  • Вызов управляемого кода из неуправляемого
    44
    vasily-v-ryabov August 15, 2017 at 04:47 PM
    0

    Да я знаю, искал когда-то. .NET машину поднять несложно. Надо ещё и DLL заинжектить. Но не суть важно. Просто пример привёл, какой минимальной сложности вопросы должны подниматься на Хабре (сугубо моё мнение), чтобы не понижать планку ресурса.

  • Автоматизируем десктопный GUI на Python + pywinauto: как подружиться c MS UI Automation
    11
    vasily-v-ryabov August 15, 2017 at 12:12 PM
    0

    Вот здесь кое-что упомянуто. Сам не пробовал. Не уверен, что он использует именно AT-SPI. Планируем сделать собственный инспектор объектов в комплекте, в том числе для AT-SPI. На PyQt5 с учётом архитектуры pywinauto такой инспектор делается за сотню строк кода максимум. Конечно, когда будет готов AT-SPI бэкенд в pywinauto.

  • ← here
  • there →
  • 1
  • 2

Info

  • Rating 8,453–d
  • Works in Intel
  • Activity 11/24/19, 11:45 PM
  • Registered April 16, 2015

Contribution to hubs

  • Open source 18
  • Python 18
  • Programming 18
  • Development for Windows 18
  • IT systems testing 8

Your account

  • Log in
  • Sign up

Sections

  • Posts
  • Hubs
  • Companies
  • Users
  • Sandbox

Info

  • Rules
  • Help
  • Documentation
  • Agreement
  • Terms of service

Services

  • Ads
  • Subscription plans
  • Content
  • Seminars
  • Megaprojects
If you find a mistake in the post please select it and press Ctrl+Enter to send a report to the author.
© 2006 – 2019 «TM»
Language settings
About
Support
Mobile version
Language settings
Interface
Content