我想在登录时自动运行 Firefox。随后,我想转到我的 ISP 的页面并单击登录按钮,一切都自动完成。
我不需要输入密码,因为它存储在浏览器中。
我正在使用 Ubuntu 12.04。这种自动化可以实现吗?
答案1
肮脏不堪,但运转正常
...是下面的脚本。
我测试了它运行 Firefox,打开 AsUbuntu 网站,然后自动按打开我的个人资料页面的链接。由于您的密码存储在浏览器中,因此,在您的情况下,按下按钮即可登录。
实践中如何运作
登录(您的 Ubuntu 用户帐户)15 秒后,脚本:
- 打开火狐浏览器
- 等待窗口出现
- 移动到你定义的 url
- 将鼠标移动到按钮的坐标并按下按钮
剧本
#!/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)
如何设置
脚本
wmctrl
需要xdotool
sudo apt-get install xdotool wmctrl
将脚本复制到一个空文件中,并将其保存为
run_login.py
现在是最棘手的部分:
通过以下命令测试运行它(不打开 ff 窗口):
python /path/to/run_login.py
如果一切正常,请将其添加到启动应用程序:Dash > 启动应用程序 > 添加。添加命令:
/bin/bash -c "sleep 15 && python /path/to/run_login.py"
重要的提示
由于在页面上单击了按钮通过其坐标,它仅在页面布局不变的情况下才有效。如果有变化,您需要重新定义位置,如脚本头部所设置的那样。