Javascript 从Google Chrome控制台填写react表单

Javascript 从Google Chrome控制台填写react表单,javascript,reactjs,google-chrome,google-chrome-devtools,Javascript,Reactjs,Google Chrome,Google Chrome Devtools,我一直在尝试编写一个机器人,通过复制+粘贴脚本到Chrome控制台,在网站上自动完成一些表单。(没有违法行为。)但是,问题是这个网站是用React编写的,这意味着它们用于表单的受控组件会干扰简单的form.value更改。如果我试图使用类似于form.value=answer的东西来填写表单,我仍然需要在表单上手动按键才能使其工作,这不适合我的自动化需求 到目前为止我所尝试的: -填写表单.value并随后启动按键/keydown/keydup。 -填写表单.value减去一个字母,然后按下一个

我一直在尝试编写一个机器人,通过复制+粘贴脚本到Chrome控制台,在网站上自动完成一些表单。(没有违法行为。)但是,问题是这个网站是用React编写的,这意味着它们用于表单的受控组件会干扰简单的
form.value
更改。如果我试图使用类似于
form.value=answer
的东西来填写表单,我仍然需要在表单上手动按键才能使其工作,这不适合我的自动化需求

到目前为止我所尝试的:
-填写
表单.value
并随后启动按键/keydown/keydup。
-填写
表单.value
减去一个字母,然后按下一个键,对应于遗漏的字母

出于某种奇怪的原因,在我手动按键之前,回车键不起提交的作用


有人能帮我吗?谢谢

填写表单字段的更好方法 我在对表单进行脏浏览器测试时使用此选项

解决具体问题

document.querySelector('input').focus();
document.execCommand('insertText', false, 'Some Text For the Input');
或者如果每次都要替换文本

document.querySelector('input').select();
document.execCommand('insertText', false, 'Some Text For the Input');
我有一个chrome脚本
dev tools->sources->scripts
,我在对表单进行脏测试时使用它

(()=>{
    const fillText = (selector, value) => {
        document.querySelector(selector).select();
        document.execCommand('insertText', false, value);
    }

    const formFields = [
        ['[data-ref-name="company"]', 'My Company'],
        ['[data-ref-name="first_name"]', 'Styks']
    ]

    formFields.forEach(field => fillText(field[0], field[1]));
}
)()

带有insertText参数的document.execCommand通常可以解决此问题。参见示例和文档。
(()=>{
    const fillText = (selector, value) => {
        document.querySelector(selector).select();
        document.execCommand('insertText', false, value);
    }

    const formFields = [
        ['[data-ref-name="company"]', 'My Company'],
        ['[data-ref-name="first_name"]', 'Styks']
    ]

    formFields.forEach(field => fillText(field[0], field[1]));
}
)()