自动网站登录开启Chrome

Automatic website login opening Chrome

有什么方法可以在 Chrome 打开后立即从 Chrome 扩展程序打开标签页?我的学校有一个访问点,每次打开计算机使用互联网时都必须登录,我想做一个自动登录的扩展,但我不知道如何制作脚本 运行 一打开 Chrome.

编辑:登录页面不是我打开浏览器时打开的页面:我必须手动转到某个站点让系统提示我登录,否则它只会告诉我我没有连接到互联网。

准备

您需要做的是:

  1. 使用所需的 manifest.json 文件创建基本 "empty" 扩展。
  2. 声明 "background" field, which will run a backgrond.js script to open the login page when Chrome is opened, using the chrome.tabs API。然后您需要为此添加权限。
  3. 在您的清单中声明 "content_scripts" field,并设置一个 contnet.js 脚本来匹配打开并允许您登录的登录 URL。
  4. 将在创建的选项卡中执行的脚本 (content.js) 将包含自动填写用户名和密码字段并单击登录按钮的代码。

实施

  1. 创建一个基本扩展,它将包含三个文件:

    • manifest.json: 扩展的清单
    • background.js: 扩展的后台脚本
    • content.js: 你的内容脚本
  2. 在您的清单中写下基本字段,如:版本、名称、背景等。然后添加 "content_scripts" 字段来声明您的脚本。您的 manifest.json 应该如下所示:

    {
        "manifest_version": 2,
    
        "name": "Some name",
        "version": "0",
    
        "permissions": [
            "tabs"
        ],
    
        "background": {
            "scripts": ["background.js"]
        },
    
        "content_scripts": {
            {
                "matches": ["http://your-login-page-url..."],
                "js": "/content.js"
            }
        }
    }
    
  3. 在您的 background.js 脚本中,您将在扩展程序启动时立即打开一个选项卡(这也是 Chrome 打开时),如下所示:

    chrome.tabs.create({url: "http://your-login-page-url..."});
    // this URL ---------------^^ should be the same as the one that matches the content script in the manifest.json
    

    将URL换成真实的,检查打开的标签页是否正确。

  4. 现在,在您的 content.js 脚本中,该脚本将加载到刚刚创建的选项卡中,您将获得正确的字段并填写它们,然后单击登录按钮。

    例如,如果登录页面如下所示:

    ...
        <span>User:</span><input id="username" type="text"/>
        <span>Password:</span><input id="password" type="password"/>
        <button id="login-btn">Log in</button>
    ...
    

    然后在您的 content.js 脚本中您将执行:

    document.getElementById('username').value = 'yourusername';
    document.getElementById('password').value = 'yourpassword';
    document.getElementById('login-btn').click();
    

    显然,您必须用真实凭据替换 yourusernameyourpassowrd

这就是全部,非常简单:只需创建一个选项卡并在其中注入一个内容脚本。此扩展现在会在您打开 Chrome!

时立即为您登录

您可以在 url 右侧为登录页面创建带有 Background Page. The background page would just need to open a new tab 的扩展。您的清单将为后台页面指定一个脚本

"background": {
  "scripts": ["background.js"]
}

并且该脚本将只包含这一行 JavaScript:

chrome.tabs.create({ url: 'the login page url' });

之所以可行,是因为浏览器启动时会加载背景页面并将其保存在内存中。因此,当您打开浏览器时,js 文件只执行一次。更新扩展时可以重新加载后台页面,但由于这将是一个私有扩展,因此您不必担心这一点,这只会使开发更容易。