t.me/atinfo_chat Telegram группа по автоматизации тестирования

Отображение одного браузера в другом для функционального тестирования

Теги: #<Tag:0x00007f9afede5968> #<Tag:0x00007f9afede5800> #<Tag:0x00007f9afede5710>

Прошу не судить строго. Но я уже провел достаточно времени в поисках решения проблемы, но увы - так ничего внятного нет на просторах интернета. Так что, уважаемые форумчане, может кто-нибуть поможет.

Суть проблемы: Есть браузер, в нем контент. Нужно отобразить его содержимое в другом браузере с сохранением функционала.
Пример: Есть IE (назовем его ИЕ1). Нужно отобразить его контент в другом IE (ИЕ2), с сохранение всей функциональности. Т.е. кликая в ИЕ2, действия должны происходить в ИЕ1, с синхронизацией контента в обоих.

Где это применимо: Например там, где на прямую доступа к ИЕ1 нет.
Очень хорошим примером являеться работа с add-in в MS Office 2016 (десктопная версия). Там add-in является небольшим приложением, которое загружается во фрейм и работает в песочнице Office. По сути своей add-in это приложение написанное на javascript. В процессах этот фрейм отображается как IE.

Что было сделано:

  • Пытался приконектится через watir - не вышло, т.к. он не может коннектится к процессам
  • Через аппиум не подходит - он не может выполнять js скрипты в этом приложении
  • Через разного рода утилиты: F12 chooser, IEDiagnosticsAdapter - не вышло, это только дебаг, а мне не то надо.

Ремарка: Пишу на java. Есть тесты для вэб версии.

Буду признателен за любые, даже самые безумные идеи.
Заранее спасибо всем.

А VNC не пробовали? Есть клиенты под браузер, https://github.com/novnc/noVNC например.

Это, на сколько я понял, просто vnc клиент. Как мне его приспособить под браузер?
Поясню. Мне нужно приконектиться к браузеру. Не к удаленной машине, а именно к, грубо говоря, удаленному браузеру.

Если вы хотите чтобы в браузере можно было управлять другим браузером, то я
не представляю как этого достичь без использования VNC-подобных решений.
Есть вариант использования такой штуки как RemoteApp если OS - Windows
Для Linux можно сделать VNC для одного приложения.

Как вариант, попытаться настройками IE добиться, чтобы IE2 открывался в другой табе, а не в другом окне?
В этом случае переключить табу средствами селениума реально.
Не знаю, насколько реализуемо в IE. В старом FF вроде как можно было.
Ещё, как вариант, гляньте вот это


Там в ответах есть примеры кода на Java и Python, как это реализовать.

Предлагаю безумную идею.
Оттолкнемся от обратного, почему разные браузеры запущенные на одном компьютере могут отображать разные сайты не смешивая информацию?

  1. ip адрес
  2. порт
  3. куки(сессия)
    Пункты 1 и 2 на одной машине совпадают(если руками не настроено иное)
    Остается сессия
    то есть, если получится синхронизировать сессии контент будет отображаться одинаковый
    Возможно(если глубоко копнуть) selenium grid на такое способен
2 Симпатий

в продолжение о сессии браузера
у меня завалялся такой код:

import java.net.URL;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class RemoteWebDriverEx extends RemoteWebDriver {

public RemoteWebDriverEx(URL url, DesiredCapabilities capabilities, String session_id) {
	super(url, capabilities);
	this.close();
	setSessionId(session_id);
}

}