Первый скрипт на Python, C# и JS
Studio принимает команды по HTTP. PHP, Python, C# и JavaScript — разные обёртки к одним методам. Большинство гайдов на сайте в PHP; этот — вход, если пишете на другом языке. Сценарий тот же: шаблон → хост → navigate → wait → клик.
Какой язык выбрать
Таблица и один и тот же navigate на четырёх языках — на objects.php#langs. На каждой странице метода справки те же вкладки PHP / Python / C# / JS.
- PHP — исторический основной: Templates, макрос пишет PHP, большинство статей.
- Python — папка
Test Samples PY, шаблоныTemplates PY. - C# —
Test Samples CSHARP, удобно рядом с Windows-сервисами. - JS —
Test Samples JS, Node-привычка.
Не смешивайте в одном файле два языка. Каталог готовых кусков: сниппеты (бейджи PY/C#/JS на карточках).
| Язык | Шаблоны | Примеры |
|---|---|---|
| PHP | Templates | Test Samples |
| Python | Templates PY | Test Samples PY |
| C# | Templates CSHARP | Test Samples CSHARP |
| JS | Templates JS | Test Samples JS |
Имена папок в установке: структура каталогов. Если папки нет — смотрите другую SKU (Demo / Studio / RT) или старую установку без языкового комплекта.
Подключить шаблон
Скрипт должен создать объекты браузера и DOM. Это делает файл-шаблон из папки Templates (имя зависит от языка). Структура каталогов установки: статья.
Практический путь — не писать include с нуля:
- Скопируйте пример
navigateиз Test Samples нужного языка. - Поправьте URL на свой стенд.
- Запустите из Studio и убедитесь, что внутренний браузер открыл страницу.
Самодельный путь к шаблону с опечаткой даёт unknown command: объекты не созданы, HTTP уходит «в никуда» или в чужой порт.
Новый файл из меню Файл в Studio подставляет актуальный шаблон под выбранный язык — так меньше шансов утащить старый init.php. Миграция старых имён: гайд.
Порт: не хардкодьте localhost:7010
Studio подставляет в процесс переменную окружения RPABOT_HOST_URL. Актуальные шаблоны читают её в xhe_host. Вторая копия на другом порту + старый localhost:7010 в скрипте = команды уходят не туда (часто это выглядит как unknown command).
$xhe_host = getenv("RPABOT_HOST_URL");
Python (если шаблон ещё с константой — замените):
import os
xhe_host = os.environ.get("RPABOT_HOST_URL", "127.0.0.1:7010")
Две копии подробно: несколько копий и порты. Живой порт приложения: app→get_port.
Старые Test Samples могли содержать голый 127.0.0.1:7013 — это порт той машины, где писали пример, не ваш. При запуске из Studio всегда берите окружение.
Минимум на Python
Идея примера из Test Samples PY/Web/browser/navigate.py: подключить шаблон, вызвать browser.navigate, при неудаче прочитать ошибку.
# sys.path к Templates PY — как в Test Samples
from xweb_human_emulator import *
if not browser.navigate("https://example.com"):
echo("переход не удался: " + browser.get_last_navigation_error())
Дальше те же имена методов, что в PHP, только без $ и с точкой: browser.navigate, не $browser->navigate. Сигнатуры сверяйте на странице метода, не по памяти.
После navigate — тот же wait, что в PHP-гайдах: input.wait_element_exist_by_name("login"). Не переводите «как в Selenium»: обёртки XHE — это HTTP к Studio, не драйвер браузера.
C# и JavaScript
C#: откройте соседний файл в Test Samples CSHARP с navigate и скопируйте using / инициализацию. Вызов тот же: browser.navigate("https://example.com"). Удобно, если робот живёт рядом с Windows-службой или уже есть сборка на .NET.
JS: Test Samples JS. Синтаксис как в Node: точка, без $. Макрос Studio по-прежнему пишет PHP — на JS не рассчитывайте, что запись кликов «сама станет» JavaScript.
На каждой странице метода справки есть вкладки PHP / Python / C# / JS. Если вкладка пустая или пример старый — ориентируйтесь на сигнатуру в шапке метода и на Test Samples той же версии продукта.
sys.path / ссылка на DLL, или скрипт стучится в другой порт. Сначала шаблон и RPABOT_HOST_URL, потом отладка селектора.Запуск из Studio
- Откройте файл в редакторе Studio (меню Файл — шаблон под язык).
- Запустите. Встроенный браузер должен открыть URL.
- Панель отладки — echo/print вашего языка. Пусто и страница не открылась: хост, путь шаблона, порт.
- Следующий шаг — wait, не антибот.
Макрос по-прежнему пишет PHP-каркас. На Python/C#/JS либо копируйте Test Samples, либо ИИ Ассистент с явным языком в задаче («пиши на Python, шаблон Templates PY»). Для PHP начните с title-робота за 6 шагов.
Внешняя IDE (PyCharm, VS): процесс должен видеть ту же RPABOT_HOST_URL, и Studio должна быть запущена. Обёртки — клиент HTTP, не автономный браузер.
| Симптом | Куда смотреть |
|---|---|
| unknown command | Шаблон языка, порт, гайд |
| Пустой браузер Studio | navigate не вызвался или хост чужой копии |
| ImportError / using не резолвится | Путь к Templates, копия Test Samples |
| Макрос дал PHP | Так и задумано — перенос на PY/C#/JS руками |
Что делать после первого navigate
- Дождаться поля: ожидание и фреймы.
- Клик/ввод: a_common.
- Форма целиком: автоматизация форм.
- Лог шагов: logger.
FAQ
Метод «есть в PHP, нет в Python». Обычно обёртка есть. Откройте страницу метода — вкладки всех языков. Поиск: Поиск API.
Макрос сгенерировал PHP, а проект на C#. Макрос не переводит язык. Перенесите последовательность действий руками или через ассистента.
Import / using не находится. Неверный sys.path / ссылка на Templates. Сверьте с соседним файлом Test Samples того же языка.
Python видит 7013, Studio слушает 7010. В примере остался хардкод. Замените на os.environ.get("RPABOT_HOST_URL").
C# собрался, страница не открылась. Процесс запущен из Visual Studio без переменной окружения и без живой Studio. Сначала стартуйте Studio, потом F5 с тем же хостом.
Нужен PHP «как в статьях», проект на Python. Переносите последовательность методов, не копируйте $ и ->. Ассистент: явно «пиши на Python, шаблон Templates PY» — ИИ Ассистент.