我尝试使用简单的Chrome扩展程序,但我遇到了障碍。
我试图自动填写登录表单(用户名和密码)。 (作为备份,以防铬自动填充功能被禁用)
我设法将一个脚本注入到页面中,我可以在console.log中输入我的目标输入。但它不会设定价值。
的manifest.json
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";
autofill.js
def ActualValue= resholder.getNodeValues("//*:Array1//*:"+context["parameter"]).toString()
我在这里缺少什么?
答案 0 :(得分:1)
显然,问题在于Chrome的自动填充功能。如果密码,将自动填充属性设置为off
,false
或new-password
对我不起作用。 Chrome似乎忽略了这一点
Disabling Chrome Autofill
我的解决方案是在执行代码之前添加一个小超时。它远非理想,但它确实有效。
setTimeout( () => {
usernameInput.value = "username";
passwordInput.value = "password"
}, 500 );
答案 1 :(得分:0)
问题几乎可以肯定是您需要等待文档加载事件。实际上,在页面上加载元素之前,您的脚本已经完成。
制作你的autofill.js
console.log( "Script properly injected into page" );
document.addEventListener('DOMContentLoaded', function () {
let usernameInput = document.querySelector( 'input[name="username"]' );
let passwordInput = document.querySelector( 'input[name="password"]' );
console.log( usernameInput );
usernameInput.value = "test";
});