Envie javascript para o Chromium ou Firefox a partir do terminal linux

3

Estou usando um navegador da Web chromium ou firefox no modo quiosque para fazer login em um site a partir da inicialização e desejo usar um javascript para enviar um comando para acessar um site automaticamente. Eu sei como escrever o javascript, mas eu não sei como "canalizar" o javascript para o navegador da web a partir de um arquivo bash terminal. Além disso, estou trabalhando no Linux.

    
por vhwitt 09.07.2015 / 21:47

2 respostas

1

No OS X, você pode usar o AppleScript para executar JavaScript no Chrome:

xj(){ osascript -e'on run{a}' -e'tell app"google chrome"to tell active tab of window 1 to execute javascript a' -eend "$1"; }

O Firefox não suporta o AppleScript.

    
por 27.04.2016 / 02:40
0

Não tenho certeza se o Firefox é capaz de fazer o que você quer aqui, mesmo que haja muitas opções de linha de comando para iniciar o Firefox a partir de um script.

O Chrome tem ainda mais opções e pode ser capaz de executar javascript a partir de uma fonte local mas duvido.

Se você pudesse de alguma forma passar o javascript pelo console do desenvolvedor, você poderia definitivamente executar código arbitrário em uma sessão do navegador da web (por exemplo, um login automatizado ou não).

Um Hack

Como é possível especificar um URL inicial a partir de um script para ambos os navegadores, talvez o seguinte funcione 1 :

  1. Escreva um script que navegue automaticamente para a página da web na qual você deseja fazer login e conclua o processo de login (por exemplo, POST do formulário de login, etc.).
  2. Salve esse arquivo em seu disco e certifique-se de que o usuário possa lê-lo.
  3. Inicie o Firefox e aponte para este arquivo:

    ./firefox -url "file:///home/thisUser/desktop/foo.html"
    

Não tenho certeza se o esquema de URL file:/// funcionará em todas as situações, mas testei-o no OSX.

Isso deve carregar o arquivo e tentar renderizar o conteúdo. A coisa file:/// é apenas uma maneira de não ter que rodar um servidor web em localhost, mas isso pode funcionar também.

Você pode ter problemas de XSS ou outros obstáculos para fazer um login remoto, então você pode ter que reverter para um script do lado do servidor e apenas apontar o navegador em um servidor localhost web.

Boa sorte!

1 Eu não testei tudo isso apenas lançando uma ideia.

    
por 09.07.2015 / 22:27