自动网站登录打开浏览器

Automatic website login opening Chrome

本文关键字:浏览器 登录 网站      更新时间:2023-09-26

有没有办法在Chrome打开后立即从Chrome扩展程序打开标签页?我的学校有一个接入点,每次打开计算机才能使用互联网时,您都必须登录该接入点,我想制作一个自动登录的扩展程序,但是我不知道如何使脚本在打开Chrome后立即运行。

编辑:登录页面

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

准备

您需要在这里做的是:

  1. 使用所需的 manifest.json 文件创建一个基本的"空"扩展名。
  2. 声明"background"字段,该字段将运行一个backgrond.js脚本,以便在打开 Chrome 时使用chrome.tabs API 打开登录页面。然后,您需要为此添加权限。
  3. 在清单中声明"content_scripts"字段,并设置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更改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": {
  "scripts": ["background.js"]
}

该脚本将只包含以下一行 JavaScript:

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

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