Escandalosamente sujo, mas trabalhando perfeitamente
... é o script abaixo.
Eu testei para rodar o firefox, abrindo o site do AsUbuntu, então automaticamente pressione o link para abrir minha página de perfil. Como sua senha é armazenada no seu navegador, no seu caso, pressionar o botão é suficiente para efetuar o login.
Como funciona na prática
15 segundos após o login (sua conta de usuário do Ubuntu), o script:
- abre o firefox
- aguarda a exibição da janela
- muda para o URL que você definiu
- move o mouse para as coordenadas do botão e pressiona o botão
O script
#!/usr/bin/env python
import subprocess
import time
# --- set the link below
url = "http://askubuntu.com"
# --- set the mouseposition to click on below
xmouse = 858; ymouse = 166
# --- don't change anything below
appcommand = ["firefox", url]
def run(cmd):
subprocess.Popen(cmd)
time.sleep(0.2)
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8").strip()
def run_firefox():
run(appcommand)
while True:
time.sleep(1)
try:
pid = get(["pgrep", "firefox"])
except subprocess.CalledProcessError:
pass
else:
time.sleep(0.1)
w = [l.split()[0] for l in get(["wmctrl", "-lp"]).splitlines() if pid in l][0]
break
return w
w = run_firefox()
cmd1 = ["xdotool", "windowsize", w, "100%", "100%"]
cmd2 = ["xdotool", "mousemove", str(xmouse), str(ymouse)]
cmd3 = ["xdotool", "click", "1"]
for cmd in [cmd1, cmd2]:
run(cmd)
time.sleep(3)
run(cmd3)
Como configurar
-
O script precisa dos dois
wmctrl
exdotool
sudo apt-get install xdotool wmctrl
-
Copie o script em um arquivo vazio, como
run_login.py
-
Agora a parte mais complicada:
- abra o navegador e vá para a página para fazer login
- coloque o mouse sobre o botão a ser pressionado (não pressione)
- pressione Ctrl + T para abrir um terminal
- digite o comando
xdotool getmouselocation
-
leia as coordenadas e defina-as na seção principal do script:
xmouse=856;ymouse=165
definaaURLdasuapáginadelogin:
url="http://askubuntu.com"
-
Teste-o (sem a janela ff aberta) pelo comando:
python /path/to/run_login.py
-
Se tudo funcionar bem, adicione-o aos aplicativos de inicialização: Dash > Aplicativos de inicialização > Adicionar. Adicione o comando:
/bin/bash -c "sleep 15 && python /path/to/run_login.py"
Nota importante
Como o botão é clicado na página por suas coordenadas , ele funcionará apenas enquanto o pagelayout não estiver alterado. Em caso de alterações, você precisa redefinir a localização, conforme definido no cabeçalho do script.