Интерфейс Karate UI — взаимодействие с уже открытым браузером

#karate

#karate

Вопрос:

Мы пытаемся протестировать веб-приложение POS (точка продажи), работающее на chromium (размещенное в контейнере docker). Chromium работает в режиме киоска, поэтому вы не увидите адресную строку, строку меню и т. Д. Теперь самое сложное для нас — взаимодействовать с этим веб-приложением, которое уже открыто и запущено. Мне просто интересно, какой маршрут или метод karate-ui я должен использовать в этом случае, чтобы в конечном итоге не открывать новый сеанс браузера.

Ответ №1:

Важно, чтобы Chrome запускался с включенным отладочным портом: --remote-debugging-port — так что, если вы можете заставить команду POS внести это изменение, вы в бизнесе. На самом деле это должно быть легко

а) передайте переменную среды, чтобы контейнер POS docker добавил этот аргумент CLI в chrome

б) разрешить этот порт для контейнера Docker

Вы можете почерпнуть некоторые идеи из контейнера Karate Docker: https://github.com/intuit/karate/blob/master/karate-docker/karate-chrome/supervisord.conf

Затем используйте конфигурацию драйвера пользовательского интерфейса Karate как start: false, port: <port you set, typically 9222>

Комментарии:

1. Привет @Питер Томас, большое спасибо за предложение start: false параметра. Я протестировал его с локальным экземпляром chromium на Mac, и он абсолютно нормально работал. Но, тем не менее, есть небольшая проблема, так как приложение / окно закрывается каратэ в конце тестового запуска. Поскольку это POS-приложение, мы хотели бы, чтобы оно работало на устройстве вечно (24/7). Мы просто хотим запустить приложение и оставить его как есть после запуска теста. Есть ли какой-либо способ для karate не закрывать окно? мой аргумент в пользу этого — karate не вызывал браузер в первую очередь, поэтому он также не должен его закрывать. Вы согласны 🙂 ?

2. @yek — да, это имеет смысл. не стесняйтесь открывать проблему. вы даже можете попробовать внести свой вклад в код, я могу предоставить предложения на GitHub для всех, кто заинтересован. но, возможно, Java API больше подходит для этого особого случая: github.com/intuit/karate/tree/master /…

3. Я поднял проблему github.com/intuit/karate/issues/1352