Как я могу открыть новую вкладку браузера из Python в Eclipse Che?

Я использую Eclipse Che v6.18.1 в Google Chrome на MacBook Pro OS v10.10.5 (Yosemite). Рабочая область Eclipse Che выполняется в контейнере Docker.

Как я могу открыть новую вкладку браузера (в том же окне браузера, что и Eclipse Che) из кода Python, выполняемого в Eclipse Che?

Таким образом, не новый экземпляр Google Chrome из контейнера Docker (слишком медленный), а новая вкладка в уже существующем окне браузера на хост-компьютере.

В Eclipse Che можно предварительно просмотреть файл HTML в рабочей области проекта (щелчок правой кнопкой мыши => Предварительный просмотр). Затем HTML-файл открывается на следующей вкладке Eclipse Che IDE. Как я могу использовать эту функцию из кода Python, чтобы открыть новую вкладку браузера?


person Tony    schedule 26.02.2019    source источник


Ответы (3)


Вы пытаетесь открыть окно предварительного просмотра, похожее на пример приложения Yeoman для nodejs? Или вы пытаетесь открыть новую вкладку из исходного кода в чьем-то браузере?

Если последнее, то я не думаю, что это возможно (или хорошая идея!) - Че-то не работает в контексте безопасности, который позволит ему дать указание браузеру открыть новую вкладку или окно.

person Dave Neary    schedule 18.03.2019
comment
В идеале я хотел бы, чтобы скрипт Python открывал локально сгенерированный файл HTML (внутри WS) в том же браузере, который я использую для Che IDE. В Че можно просматривать файлы HTML в проекте WS. Как я могу использовать эту функцию из кода Python? - person Tony; 18.03.2019
comment
Достаточно ли предоставить пользователям ссылку, по которой они будут щелкать, чтобы открыть сгенерированный HTML-файл? - person Dave Neary; 20.03.2019
comment
Нет. Я хочу открыть новый терминал в рабочей области Eclipse Che и запустить скрипт Python, который создаст файл HTML и откроет его в том же окне браузера, что и Eclipse Che. - person Tony; 20.03.2019
comment
Вы, конечно, можете запустить скрипт в терминале — и как только файл HTML будет сгенерирован, он станет файлом в вашем проекте, как и любой другой. Я думаю, что ссылка Preview — это то, как мы обслуживаем статические HTML-страницы из проекта, но я не уверен, как это сделать (я также хотел бы сделать это FWIW). - person Dave Neary; 21.03.2019

[che6] Вы не можете открыть URL-адрес предварительного просмотра из кода Python. Но вы можете создать команду Che, которая будет запускать код Python и показывать URL-адрес предварительного просмотра. Подробности здесь: https://www.eclipse.org/che/docs/che-6/commands-ide-macro.html

person sunix    schedule 21.03.2019
comment
Спасибо за помощь. Однако указанная страница не содержит примеров. Что мне непонятно: Каков правильный синтаксис внутри команды для обращения к файлу HTML внутри WS и запуска предварительного просмотра? Когда я помещаю «${server.wsagent/http}/ project/file/test/test.html» на панели URL-адрес предварительного просмотра, то я могу открыть этот URL-адрес в браузере для предварительного просмотра («Предварительный просмотр:» в Терминале или «Предварительный просмотр» в правом верхнем углу) Однако, если я поместил тот же макрос в панель Командная строка, я получаю сообщение об ошибке «Нет такого файла или каталога». Поэтому я не могу создать команду, чтобы открыть этот файл для предварительного просмотра. - person Tony; 21.03.2019
comment
Кроме того: Как я могу сослаться из скрипта Python на команду, которую я сохранил в своем WS? Я искал на своем хост-компьютере, но также вошел в WS через bash и не могу найти файл с этим имя. Когда я делаю «echo ${editor.current.file.path}», я получаю «/projects/commands/custom/run_test», но не могу открыть его для просмотра или запустить с помощью Python. - person Tony; 21.03.2019
comment
Как уже было сказано: я могу легко создать и поместить ссылку на файл на панели URL-адреса предварительного просмотра (затем щелкните заголовок предварительного просмотра в Терминале и откройте файл при выполнении команды), но я не могу использовать тот же синтаксис для панели командной строки. Я знаю, что содержимое обеих панелей хранится вместе как одна команда, но я не знаю, как и где. По сути, я не хочу запускать всю команду, а только эту часть команды из панели URL-адреса предварительного просмотра. Каков правильный способ сделать это? - person Tony; 27.03.2019

По словам разработчиков Eclipse Che, эта функция в настоящее время недоступна в Eclipse Che. Для этого всегда требуется взаимодействие с пользователем. См. этот сообщение GitHub.

person Tony    schedule 30.03.2019