Я хочу сделать следующее:
- Открыть Firefox
- Перейти к Netflix
- Войти и удаленно запускать воспроизведение видео.
Я хочу сделать это для того, чтобы сделать своего рода «Smart TV» для нашего домашнего проектора, вместо того, чтобы каждый раз подключать ноутбук.
Я сейчас пытаюсь открыть Firefox, чтобы иметь возможностьмонитор, если он все еще открыт, и сможет закрыть его.Затем я планирую использовать удаленную отладку для управления браузером.
Это мой код для запуска экземпляра браузера:
const Player = require("../../Player");
const child_process = require("child_process");
const DEBUG_FLAG = "--start-debugger-server";
const PROFILE_FLAG = "-P \"node-smart-tv\"";
const NO_REMOTE = "-no-remote";
class BrowserPlayer extends Player {
constructor(firefoxPath = "firefox", debugPort = 6660) {
super();
this.firefoxPath = firefoxPath;
this.debugPort = debugPort;
const command = "\"" + firefoxPath + "\" " + DEBUG_FLAG + " " + debugPort + " " + PROFILE_FLAG + " " + NO_REMOTE;
console.log("Running firefox via: " + command);
this.firefox = child_process.exec(
command,
{
windowsHide: true
},
(error, stdout, stderr) => {
console.log("Firefox terminated. \nSTDERR:\n" + stderr + "\n\nSTDOUt:\n" + stdout + "\n\nERROR:" + error);
}
);
console.log("Firefox PID: ", this.firefox.pid);
this.firefox.on("close", (e) => console.log("Firefox stdout closed!"));
this.firefox.on("error", (e) => console.log("Firefox error: " + e));
this.firefox.on("exit", (code, signal) => { console.log(`Firefox exit with code ${code}`); });
}
}
Я запускаю браузер в специальном профиле, созданном для этой цели.В этом профиле включена удаленная отладка.
Однако приведенный выше код запускает Firefox, но считает, что он немедленно закрылся.И действительно, PID, который я вижу в console.log
, не является идентификатором, который я вижу в диспетчере задач.
Полагаю, мониторинг процессов в Firefox более сложен?Что я могу сделать, чтобы отслеживать статус браузера?Я хотел бы иметь возможность запускать обычный профиль Firefox вместе с ним.
Не могли бы вы показать мне, как исправить приведенный выше код, чтобы он не терял отслеживание запущенных им процессов Firefox?