我正在尝试使用简单的Chrome扩展程序,但遇到了麻烦。
我正在尝试自动填写登录表单(用户名和密码)。 (作为备份,以防禁用Chrome自动填充功能)
我设法将脚本注入到页面中,并且可以console.log输入我定位的输入。但这不会设置值。

Manifest.json

{
  "manifest_version": 2,
  "name": "Test Extension",
  "description": "Test Extension",
  "version": "1.0",
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "index.html"
  },
  "content_scripts": [
    {
        "matches": [ "*://*.domain.net/*" ],
        "js": [ "autofill.js" ]
    }
  ],
  "permissions": [
    "tabs",
    "*://*.domain.net/*"
  ]
}


autofill.js

console.log( "Script properly injected into page" );

let usernameInput = document.querySelector( 'input[name="username"]' );
let passwordInput = document.querySelector( 'input[name="password"]' );

console.log( usernameInput );

usernameInput.value = "test";


我在这里想念什么?

最佳答案

显然,问题出在Chrome的自动填充功能。如果没有密码,请将autocomplete属性设置为offfalsenew-password。 Chrome似乎忽略了这一点。
Disabling Chrome Autofill

我的解决方案是在执行代码之前添加一个小的超时。这远非理想,但可行。

setTimeout( () => {
    usernameInput.value = "username";
    passwordInput.value = "password"
}, 500 );

09-25 18:29
查看更多