Что такое selenium python
Selenium — это бесплатная и открытая библиотека для автоматизированного тестирования веб-приложений. Я предполагаю Если вы посетили этот сайт, скорее всего, вы хотя бы слышали и имеете представление о Selenium.
Что такое Selenium?
Библиотека первоначально была создана в 2004 году Джейсоном Хаггинсом, к которому впоследствии присоединились другие его коллеги из компании ThoughtWorks. Selenium поддерживает все основные браузеры, и тесты могут быть записаны на многих языках программирования, а также работать на платформах Windows, Linux и Macintosh.
Selenium 2 объединяется с другим тестовым фреймворком WebDriver (именно поэтому вы видите ‘seleniumwebdriver‘) во главе с Саймоном Стюартом в Google. Сегодня Саймон работает в FaceBook. Selenium 2.0 был выпущен в июле 2011 года.
Язык программирования для Selenium
Тесты могут быть написаны в нескольких языках программирования, таких как Java, C#, Python, JavaScript и Ruby. Весьма часто можно услышать высказывание типа «Это Java, поэтому мы также будем писать тесты на Java.» Это не совсем правильно. Тестирование программного обеспечения заключается в том, соответствует ли работа программиста требованиям заказчика. В некотором смысле, тестеры представляют самих клиентов. Тестеры должны иметь больший вес при определении тестового синтаксиса, чем программисты. Плюс, зачем вам требовать, чтобы у ваших тестировщиков был один и тот же язык программирования?
Сценарные языки программирования, такие как Ruby и Python больше подходят для тестовых скриптов, чем компилируемые языки, такие как C# и Java.
Все примеры на этом сайте написаны в Selenium, в связке с Python. Это не означает, что этот материал предназначен только для тестеров / разработчиков, которые знают Python. В нижеприведенных примерах можно увидеть, что использование Selenium в различных языках программирования очень похоже. Как только вы овладеете одним, вы сможете применять его к другим довольно легко. Взгляните на простой тестовый сценарий Selenium в пяти разных языковых привязках: Java, C#, JavaScript, Ruby и Python.
Начинаем работать с Selenium в Python
Введение
Автоматизация работы с веб-браузером набирает все большую популярность и в настоящее время появилось много инструментов, предоставляющих разработчикам эту возможность, от «всемогущих» фреймворков настоящих «швейцарских ножей» до узкоспециализированных утилит.
Автоматизация взаимодействия пользователя с веб-браузером часто используется как для тестирования в ходе процесса разработки ( development ), так и на стадии завершении работы над проектом ( production ). Также автоматизация управления веб-браузером может использоваться для извлечения данных из открытых источников сети Интернет для последующего анализа и обработки полученных данных.
То как вы используете технологии автоматизации работы с браузером будет зависит только от вас, просто убедитесь, что то, что вы делаете является законным. Поскольку «боты», созданные с помощью инструментов автоматизации, могут нарушать законные права владельцев контента сайтов или процесс функционирование сайта.
Selenium является одним из наиболее широко используемых инструментов автоматизации веб-браузера, и предлагает широкий функционал для управления браузером.
Он поддерживает многие языки, такие как C #, Java, Perl, PHP и Ruby. Однако в нашей статье изложены материалы по его использованию с Python в Windows.
Что такое Selenium?
Selenium — отличный инструмент, который позволяет разработчикам эмулировать (имитировать) действия в браузере пользователя с использованием всего лишь нескольких строк кода. Используя инструменты, которые он предлагает, очень легко реализуется загрузка содержимого веб-страниц в браузер, а также имитация взаимодействия пользователя с её элементами и даже с учетом особенностей человеческого поведения.
Так для борьбы с «ботами», имитирующими поведение людей, используются сложные специализированные системы для распознавания поведения, подобного человеку, которое иногда невозможно воспроизвести с помощью инструментов автоматизации работы с веб-браузером.
Перечислим некоторые из наиболее популярных задач, решаемых с помощью Selenium, хотя весь их список конечно же не ограничивается приведенными ниже:
Подготовка к работе
Прежде чем мы начнем, нам необходимо проделать следующие операции:
Основы работы с Selenium
Отлично, теперь мы готовы начать работать с Selenium. Попробуем запустить браузер и перейти по заданному URL:
Положение элементов на странице
Как правило, вам совсем не нужно всё содержимое страницы, а лишь только её отдельных частей (HTML элементов). Поэтому вначале необходимо определить местоположение нужного нам HTML элемента на странице, для этого можно использовать инструмент Inspect Element из состава web developer tools браузера Google Chrome.
Для решения нашей задачи, нам необходимо узнать идентификатор тега элемента, над содержимым которого мы хотим затем поработать. И для этого необходимо сделать следующее в обычной сессии Google Chome:
Выберите в контекстном меню «Просмотреть код»
Как ещё можно использовать этот инструмент для поиска элементов на странице, вы можете прочитать на официальном сайте.
Получив идентификаторы нужных нам элементов, мы можем выполнять над ними и их содержимым различные действия.
Получение элементов и их содержимого по id
Если знаете id нужного вам элемента, то его со всем содержимым, а также вложенными элементами, можно легко получить следующим способом:
Получение элементов по значению атрибута name
Аналогично предыдущему примеру:
Получение элементов по имени класса
И снова, аналогично предыдущему примеру кода:
Получение элементов по имени тега HTML
Так же вы можете получить элементы страницы по имени тега:
Получение элементов с использованием синктаксиса XPath
Как вы понимаете не все элементы страницы могут иметь уникальный идентификатор. Или, например, получив доступ с помощью метода find_elements_by_tag_name ко всем элементам на странице с заданным тегом, нам в принципе не нужно содержимое каждого из них, а лишь одного конкретного элемента из выборки.
Для решения подобных задач были разработаны другие способы получения содержимого конкретного элемента на странице, например, с использованием синтаксиса XPath (языка запросов к элементам XML документа). С использованием XPath вы сможете находить элементы на странице более быстрым и эффективным способом:
Переменная tag_list теперь содержит все элементы страницы с тегом tag у которого задан атрибут attr с установленным значением val :
Selenium WebElement
Перечислим основные из них:
Selenium WebDriver
С помощью объекта WebDriver вы можете осуществлять множество операций, а точнее практически проделывать все действия, что может сделать человек с обычным браузером.
Вот некоторые полезные его полезные возможности:
Вы можете изменять разрешение или размер окна браузера на любое другое значение, но вы должны помнить, что в этом случае для текущего экземпляра объекта driver это значение будет установлено по умолчанию.
Навигация по странице
Доступ к файлам cookie
Вам может понадобиться добавить или удалить файлы cookie браузера, с заданным содержимым:
Также очень легко получить cookie из текущей сессии браузера:
Приведенный выше код выведет в консоли содержимое каждого файла cookie из текущей сессии браузера.
Изменение HTML кода страницы
Если вам понадобилось изменить свойства определенного HTML элемента страницы, например, добавить или удалить его атрибуты и т. д. То как уже упоминалось ранее, вы можете использовать объект Selenium WebDriver для выполнения произвольного JavaScript кода на загруженной странице. Таким образом с помощью JavaScript можно легко изменять любые свойства элементов страницы:
Здесь element — это элемент страницы, полученный любым из описанных выше способов. attr соответственно его атрибут, который нужно изменить (или добавить), а value — его значение.
Загрузка файлов с использованием ссылок на скачивание
Допустим вам необходимо загрузить какой-либо файл с веб-сайта. Следующий код поможет это осуществить:
Нажатие клавиш клавиатуры
Этот код эмулирует нажатие клавиши «стрелка вниз» ( Keys.ARROW_DOWN ) 3 раза. После каждого нажатия action.send_keys(Keys.ARROW_DOWN) программа ожидает небольшой промежуток времени (0.1 сек.).
Этот прием рекомендуется использовать для того, чтобы убедиться, что в текущем окне браузера зарегистрированы обработчики событий нажимаемых клавиш. Также этот способ применяется для исключения ситуаций, когда команды нажатия клавиш могут «потеряться» в процессе взаимодействия с браузером (например, страница не успела загрузится и соответствующие обработчики событий элементов не были назначены), то есть они просто не будут зарегистрированы и исполнены в последствии.
Нажатия на кнопки и другие HTML элементы
Как уже говорилось выше, вы можете использовать эмуляцию событий нажатия клавиши Tab для перемещения между элементами на странице, клавиши Space (пробел) для заполнения checkbox (флажков), а также клавиш со стрелками для перемещения между пунктами выпадающего меню.
Ввод данных в элементы ввода форм
Вы также можете эмулировать нажатия клавиш внутри HTML элементов ввода в формы текстовой информации:
Скроллинг
Иногда некоторые части страницы загружаются только после ее прокрутки вниз. Например, канал в Instagram или любая другая страница с “бесконечной” прокруткой (с использованием AJAX). C помощью приведенного ниже скрипта JavaScript можно прокрутить страницу браузера вниз:
Приведенный выше код использует команды языка JavaScript для прокрутки до нижней части страницы, теперь вы можете использовать метод driver.page_source и получить полное содержимое страницы.
Заключение
Selenium — один из наиболее широко используемых инструментов для автоматизации работы с веб-браузером, который предлагает множество функций и возможностей для просмотра и сбора информации. В основном он используется для автоматизации тестирования веб-приложений в ходе разработки, хотя его также можно эффективно использовать в качестве инструмента для сбора информации ( web scraping ).
Соблюдайте законы, если вы осуществляете сбор контента из ресурсов Интернет. Не нарушайте авторские права 😉
Selenium для Python. Глава 1. Установка
Представляю перевод неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.
Предисловие от автора статьи
Selenium WebDriver – это программная библиотека для управления браузерами. WebDriver представляет собой драйверы для различных браузеров и клиентские библиотеки на разных языках программирования, предназначенные для управления этими драйверами.
По сути своей использование такого веб-драйвера сводится к созданию бота, выполняющего всю ручную работу с браузером автоматизированно.
Чаще всего Selenium WebDriver используется для тестирования функционала веб-сайтов/веб-ориентированных приложений. Автоматизированное тестирование удобно, потому что позволяет многократно запускать повторяющиеся тесты. Регрессионное тестирование, то есть, проверка, что старый код не перестал работать правильно после внесения новых изменений, является типичным примером, когда необходима автоматизация. WebDriver предоставляет все необходимые методы, обеспечивает высокую скорость теста и гарантирует корректность проверки (поскольку человеский фактор исключен). В официальной документации Selenium приводятся следующие плюсы автоматизированного тестирования веб-приложений:
Также одной из незаменимых особенностей Selenium WebDriver является ожидание загрузки страницы. Сюда можно отнести случаи, когда парсинг данных на странице невозможен из-за страниц перенаправления или ожидания, содержащих примерно такой текст: «Подождите, страница загружается». Такие страницы, само собой разумеется, не является целью парсинга, однако обойти их часто не представляется возможным. Естественно, без Selenium WebDriver. Selenium WebDriver позволяет в таких случаях «ожидать», как ожидал бы человек, пока на странице, к примеру, не появится элемент с необходимым именем.
Еще один плюс Selenium заключен в том, что действия веб-драйвера видимы визуально и требуют минимального времени нахождения на странице, это позволяет с удобством демонстрировать функционал сайта, когда необходима презентация сервиса.
Некоторые проблемы WebDriver (из сети и личного опыта):
Содержание:
1. Установка
1.1. Введение
Привязка Selenium к Python предоставляет собой простой API [Интерфейс программирования приложений (англ. Application Programming Interface) — Прим. пер.] для написания тестов функциональности/тестов соответствия требованиям с использованием веб-драйвера Selenium WebDriver. С помощью Selenium Python API вы можете интуитивно просто получить доступ ко всему функционалу Selenium WebDriver.
Привязка Python-Selenium предоставляет удобный API для доступа к таким веб-драйверам Selenium как Firefox, Ie, Chrome, Remote и других. На данный момент поддерживаются версии Python 2.7, 3.2, 3.3 и 3.4.
В данной документации рассмотрен Selenium 2 WebDriver API. Selenium 1 / Selenium RC API в ней не охвачены.
1.2. Загрузка Selenium для Python
Для создания изолированной среды Python вы можете использовать virtualenv. Также библиотека Python 3.4 содержит модуль pyvenv, который практически аналогичен virtualenv.
1.3. Подробная инструкция для пользователей Windows
Примечание
Для данной инсталляции вам необходим доступ к сети Интернет.
1.4. Загрузка Selenium server
Примечание
Selenium server необходим в случаях, когда вы хотите использовать remote WebDriver [удаленный — Прим. пер.]. За дополнительной информацией обращайтесь к разделу Использование Selenium с remote WebDriver. Если вы только начинаете изучать Selenium, вы можете пропустить этот раздел и продолжить изучение со следующей главы.
Selenium server написан на языке Java. Для его запуска рекомендована среда Java Runtime Environment (JRE) версии 1.6 или выше.
Вы можете скачать Selenium server 2.x на странице загрузок сайта selenium. Имя файла должно выглядеть примерно таким образом: selenium-server-standalone-2.x.x.jar. Вы всегда можете загрузить последнюю версию Selenium server 2.x.
Если Java Runtime Environment (JRE) не установлена в вашей системе, вы можете скачать JRE с сайта Oracle. Если вы используете системы GNU/Linux и имеете права root [права администратора — Прим. пер.], вы так же можете установить JRE, используя инструкции вашей системы.
Если команда java доступна в PATH (переменная окружения), вы можете запустить Selenium server используя следующую команду:
Замените 2.x.x актуальной версией Selenium server, скачанной вами с сайта.
Если JRE установлена под пользователем, не обладающим правами root и/или если она недоступна в переменной окружения PATH, вы можете ввести относительный или полный путь до файла java. Аналогично, вы можете дополнить имя jar-файла Selenium server до относительного или полного пути. После этого команда будет выглядеть так:
Selenium для Python. Глава 2. Первые Шаги
Продолжение перевода неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.
Содержание:
2. Первые шаги
2.1. Простое использование
Если вы установили привязку Selenium к Python, вы можете начать использовать ее с помощью интерпретатора Python.
Код выше может быть сохранен в файл (к примеру, python_org_search.py), и запущен:
Запускаемый вами Python должен содержать установленный модуль selenium.
2.2. Пошаговый разбор примера
Модуль selenium.webdriver предоставляет весь функционал WebDriver’а. На данный момент WebDriver поддерживает реализации Firefox, Chrome, Ie и Remote. Класс Keys обеспечивает взаимодействие с командами клавиатуры, такими как RETURN, F1, ALT и т.д…
Далее создается элемент класса Firefox WebDriver.
Метод driver.get перенаправляет к странице URL в параметре. WebDriver будет ждать пока страница не загрузится полностью (то есть, событие “onload” игнорируется), прежде чем передать контроль вашему тесту или скрипту. Стоит отметить, что если страница использует много AJAX-кода при загрузке, то WebDriver может не распознать, загрузилась ли она полностью:
Следующая строка — это утверждение (англ. assertion), что заголовок содержит слово “Python” [assert позволяет проверять предположения о значениях произвольных данных в произвольном месте программы. По своей сути assert напоминает констатацию факта, расположенную посреди кода программы. В случаях, когда произнесенное утверждение не верно, assert возбуждает исключение. Такое поведение позволяет контролировать выполнение программы в строго определенном русле. Отличие assert от условий заключается в том, что программа с assert не приемлет иного хода событий, считая дальнейшее выполнение программы или функции бессмысленным — Прим. пер.]:
WebDriver предоставляет ряд способов получения элементов с помощью методов find_element_by_*. Для примера, элемент ввода текста input может быть найден по его атрибуту name методом find_element_by_name. Подробное описание методов поиска элементов можно найти в главе Поиск Элементов:
После этого мы посылаем нажатия клавиш (аналогично введению клавиш с клавиатуры). Специальные команды могут быть переданы с помощью класса Keys импортированного из selenium.webdriver.common.keys:
После ответа страницы, вы получите результат, если таковой ожидается. Чтобы удостовериться, что мы получили какой-либо результат, добавим утверждение:
В завершение, окно браузера закрывается. Вы можете также вызывать метод quit вместо close. Метод quit закроет браузер полностью, в то время как close закроет одну вкладку. Однако, в случае, когда открыта только одна вкладка, по умолчанию большинство браузеров закрывается полностью:
2.3. Использование Selenium для написания тестов
Selenium чаще всего используется для написания тестовых ситуаций. Сам пакет selenium не предоставляет никаких тестовых утилит или инструментов разработки. Вы можете писать тесты с помощью модуля Python unittest. Другим вашим выбором в качестве тестовых утилит/инструментов разработки могут стать py.test и nose.
В этой главе, в качестве выбранной утилиты будет использоваться unittest. Ниже приводится видоизмененный пример с использованием этого модуля. Данный скрипт тестирует функциональность поиска на сайте python.org:
Вы можете запустить тест выше из командной строки следующей командой:
Результат сверху показывает, что тест завершился успешно.
2.4. Пошаговый разбор примера
Сначала были импортированы все основные необходимые модули. Модуль unittest встроен в Python и реализован на Java’s JUnit. Этот модуль предоставляет собой утилиту для организации тестов.
Модуль selenium.webdriver предоставляет весь функционал WebDriver’а. На данный момент WebDriver поддерживает реализации Firefox, Chrome, Ie и Remote. Класс Keys обеспечивает взаимодействие с командами клавиатуры, такими как RETURN, F1, ALT и т.д…
Класс теста унаследован от unittest.TestCase. Наследование класса TestCase является способом сообщения модулю unittest, что это тест:
setUp — это часть инициализации, этот метод будет вызываться перед каждым методом теста, который вы собираетесь написать внутри класса теста. Здесь мы создаем элемент класса Firefox WebDriver.
Далее описан метод нашего теста. Метод теста всегда должен начинаться с фразы test. Первая строка метода создает локальную ссылку на объект драйвера, созданный методом setUp.
Метод driver.get перенаправляет к странице URL в параметре. WebDriver будет ждать пока страница не загрузится полностью (то есть, событие “onload” игнорируется), прежде чем передать контроль вашему тесту или скрипту. Стоит отметить, что если страница использует много AJAX-кода при загрузке, то WebDriver может не распознать, загрузилась ли она полностью:
Следующая строка — это утверждение, что заголовок содержит слово “Python”:
WebDriver предоставляет ряд способов получения элементов с помощью методов find_element_by_*. Для примера, элемент ввода текста input может быть найден по его атрибуту name методом find_element_by_name. Подробное описание методов поиска элементов можно найти в главе Поиск Элементов:
После этого мы посылаем нажатия клавиш (аналогично введению клавиш с клавиатуры). Специальные команды могут быть переданы с помощью класса Keys импортированного из selenium.webdriver.common.keys:
После ответа страницы, вы получите результат, если таковой ожидается. Чтобы удостовериться, что мы получили какой-либо результат, добавим утверждение:
Метод tearDown будет вызван после каждого метода теста. Это метод для действий чистки. В текущем методе реализовано закрытие окна браузера. Вы можете также вызывать метод quit вместо close. Метод quit закроет браузер полностью, в то время как close закроет одну вкладку. Однако, в случае, когда открыта только одна вкладка, по умолчанию большинство браузеров закрывается полностью.:
Завершающий код — это стандартная вставка кода для запуска набора тестов [Сравнение __name__ с «__main__» означает, что модуль (файл программы) запущен как отдельная программа («main» (англ.) — «основная», «главная») (а не импортирован из другого модуля). Если вы импортируете модуль, атрибут модуля __name__ будет равен имени файла без каталога и расширения — Прим. пер.]:
2.5. Использование Selenium с remote WebDriver
Строка выше сообщает о том, что вы можете использовать указанный URL для подключения remote WebDriver. Ниже приводится несколько примеров:
Переменная desired_capabilities — это словарь. Вместо того, чтобы использовать словари по умолчанию, вы можете явно прописать значения:
Что такое Selenium?
Время от времени мне приходится распутывать терминологические хитросплетения, связанные с употреблением словосочетаний, в которых встречается слово Selenium – Selenium 2.0, Selenium IDE, Selenium RC, Selenium WebDriver, Selenium Server, Selenium Grid.
Путаница возникает во многом из-за того, что нигде нет чёткого описания всех этих терминов на одной страничке, и я постараюсь восполнить этот информационный пробел.
Selenium
Selenium WebDriver
Selenium WebDriver – это программная библиотека для управления браузерами. Часто употребляется также более короткое название WebDriver.
Иногда говорят, что это «драйвер браузера», но на самом деле это целое семейство драйверов для различных браузеров, а также набор клиентских библиотек на разных языках, позволяющих работать с этими драйверами.
Это основной продукт, разрабатываемый в рамках проекта Selenium.
Selenium WebDriver называется также Selenium 2.0, причина этого будет объяснена ниже.
Как уже было сказано, WebDriver представляет собой семейство драйверов для различных браузеров плюс набор клиентских библиотек для этих драйверов на разных языках программирования:
В рамках проекта Selenium разрабатываются драйверы для браузеров Firefox, Internet Explorer и Safari, а также драйверы для мобильных браузеров Android и iOS. Драйвер для браузера Google Chrome разрабатывается в рамках проекта Chromium, а драйвер для браузера Opera (включая мобильные версии) разрабатывается компанией Opera Software. Поэтому они формально не являются частью проекта Selenium, распространяются и поддерживаются независимо. Но логически, конечно, можно считать их частью семейства продуктов Selenium.
Selenium RC
Selenium RC – это предыдущая версия библиотеки для управления браузерами. Аббревиатура RC в названии этого продукта расшифровывается как Remote Control, то есть это средство для «удалённого» управления браузером.
Эта версия с функциональной точки зрения значительно уступает WebDriver. Сейчас она находится в законсервированном состоянии, не развивается и даже известные баги не исправляются. А всем, кто сталкивается с ограничениями Selenium RC, предлагается переходить на использование WebDriver.
Иногда Selenium RC называется также Selenium 1.0, тогда как WebDriver называется Selenium 2.0. Хотя на самом деле дистрибутив версии 2.0 включает в себя одновременно обе реализации – и Selenium RC, и WebDriver. А вот когда выйдет версия 3.0 – в ней останется только WebDriver.
С технической точки зрения WebDriver не является результатом эволюционного развития Selenium RC, они построены на совершенно разных принципах и у них практически нет общего кода. Объединяет их лишь тот факт, что обе реализации были сделаны в рамках проекта Selenium. Ну, или если быть совсем точным, WebDriver сначала был самостоятельным проектом, но в 2008 году произошло слияние и сейчас WebDriver представляет собой основной вектор развития проекта Selenium.
Selenium Server
Selenium Server – это сервер, который позволяет управлять браузером с удалённой машины, по сети. Сначала на той машине, где должен работать браузер, устанавливается и запускается сервер. Затем на другой машине (технически можно и на той же самой, конечно) запускается программа, которая, используя специальный драйвер RemoteWebDriver, соединяется с сервером и отправляет ему команды. Он в свою очередь запускает браузер и выполняет в нём эти команды, используя драйвер, соответствующий этому браузеру:
Selenium Server поддерживает одновременно два набора команд – для новой версии (WebDriver) и для старой версии (Selenium RC).
Selenium Grid
Selenium Grid – это кластер, состоящий из нескольких Selenium-серверов. Он предназначен для организации распределённой сети, позволяющей параллельно запускать много браузеров на большом количестве машин.
Selenium Grid имеет топологию «звезда», то есть в его составе имеется выделенный сервер, который носит название «хаб» или «коммутатор», а остальные сервера называются «ноды» или «узлы». Сеть может быть гетерогенной, то есть коммутатор и узлы могут работать под управлением разных операционных систем, на них могут быть установлены разные браузеры. Одна из задач Selenium Grid заключается в том, чтобы «подбирать» подходящий узел, когда во время старта браузера указываются требования к нему – тип браузера, версия, операционная система, архитектура процессора и ряд других атрибутов.
Ранее Selenium Grid был самостоятельным продуктом. Сейчас физически продукт один – Selenium Server, но у него есть несколько режимов запуска: он может работать как самостоятельный сервер, как коммутатор кластера, либо как узел кластера, это определяется параметрами запуска.
Selenium IDE
Selenium IDE – плагин к браузеру Firefox, который может записывать действия пользователя, воспроизводить их, а также генерировать код для WebDriver или Selenium RC, в котором выполняются те же самые действия. В общем, это «Selenium-рекордер».
Тестировщики, которые не умеют (или не хотят) программировать, используют Selenium IDE как самостоятельный продукт, без преобразования записанных сценариев в программный код. Это, конечно, не позволяет разрабатывать достаточно сложные тестовые наборы, но некоторым хватает и простых линейных сценариев.
Вот, кажется, и всё.
Если я забыл рассказать про какой-то термин – напишите в комментариях, и я постараюсь добавить его в этот мини-словарик.