Мы используем селен для веб-приложений и LeanFT для настольных приложений и приложений Citrix (например, PowerBuilder, эмулятор терминала) с использованием Java.
Использование только LeanFT или selenium не вызывает проблем (мы используем LeanFT Reporter и селен TakesScreenshot), но проблема заключается в том, что в одном потоке со скриншотом мы переключаем контекст между LeanFT и Selenium.
Что мы пробовали до сих пор:
Пытался переключиться на захват экрана LeanFT, если селен getDriver возвращает null, но это не так, если мы сначала начнем webDriver, произойдет сбой
В нашем фреймворке снимок экрана является частью onTestPass, onTestFail, поэтому конечным пользователям не нужно явно вызывать getScreenshot.
Есть идеи, что мы могли бы использовать для уведомления о методе захвата экрана на основе LeanFT или селена? Цель состоит в том, чтобы создать единый отчет, используя как результаты selenium, так и результаты LeanFT.
Примечание. Мы не хотим использовать LeanFT для всего (из-за возможности повторного использования существующих скриптов), и мы должны использовать LeanFT для систем, не связанных с Интернетом.
Чтобы закрыть избирателей: обратите внимание, что OP не запрашивает сторонние ресурсы, а скорее то, как использовать две структуры, тощий и селен вместе. Это верно, хотя вопрос мог бы быть более ясным, поэтому я попросил указать пункты выше.
(1) Скриншоты Selenium делаются с использованием интерфейса «takescreenshot» путем преобразования выходных данных webdriver в файл изображения, который копируется в нужное место, откуда мы строим отчет (мы используем интерфейс ITestlistener TestNg), внутри которого вызываются скриншоты. (2) Да, это для один отчет (3) Как вы упомянули, мы используем комбинацию фреймворков, Leanft использует reportersdk.init, который обрабатывает захват экрана Leanft, но в нашем ITestlistener нам нужно различать, когда использовать Leanft Reporter и делать скриншот (4) Надеюсь, пункт 3 объясняет!
Итак, вы используете testNG в качестве фреймворка? Можете ли вы опубликовать минимальную настройку, разборку и методы тестирования? поэтому мы видим логику - постарайтесь максимально минимизировать, используя как селен, так и Leanft, и я дам подробный ответ. но прежде чем я смогу это сделать, мне нужно увидеть некоторую текущую логику
Не вдаваясь в подробности, установка и демонтаж являются частью фреймворка, который работает как onTestSuccess, onTestFailure, он вызовет помощника по отчету, который имеет getScreenshot для построения отчета. После каждого шага будет сделан снимок экрана в зависимости от результата (пройдено/не пройдено). Будь то leanFT или selenium, после каждого шага он будет вызывать эти методы для создания снимков экрана, и в этих методах нам нужно определить, когда использовать изображение репортера LeanFT и изображение Selenium.
@Adelin Нам удалось решить это более грубым способом. Он работает так, как мы хотели. По сути, мы сравниваем образ LeanFT (который делает снимок экрана для всех шагов) и смотрим, пришло ли новое изображение, если не заходим в веб-драйвер и делаем снимок экрана с помощью веб-драйвера.




На основании предоставленных сведений ответить непросто. То, что вы описываете, не совсем обычное устройство. Я немного знаком с селеном и много знаю о LeanFT, поэтому мне нужно знать (1), как обрабатываются скриншоты в селене (какой метод и какой тип он возвращает) (2) какова точная цель? есть единый отчет? (3) Можете ли вы переключиться на LeanFT в случае неудачи? (не когда ноль) и (4) вы не можете использовать reportEvent с изображением, предоставленным селеном?