自动填充在基于Angularjs的页面中不起作用

自动填充在基于Angularjs的页面中不起作用,angularjs,google-chrome-extension,Angularjs,Google Chrome Extension,我有一个页面,我想填写登录/密码字段并自动单击“登录”提交按钮。我在信中提到了所有的细节 该页面正在使用AngularJS 由于未检测到登录/密码字段,因此它不起作用。我试过很多方法,包括 比如说。我尝试过此代码(以及其他类似代码),但没有一个代码能够使页面检测到自动填充的登录名和密码: $("#loginEmailMobile").val(user_selections.freecharge_details.login).trigger('input').keydown().keyup();

我有一个页面,我想填写登录/密码字段并自动单击“登录”提交按钮。我在信中提到了所有的细节

该页面正在使用AngularJS

由于未检测到登录/密码字段,因此它不起作用。我试过很多方法,包括

比如说。我尝试过此代码(以及其他类似代码),但没有一个代码能够使页面检测到自动填充的登录名和密码:

$("#loginEmailMobile").val(user_selections.freecharge_details.login).trigger('input').keydown().keyup();   
         $("input#clientpassword").val(user_selections.freecharge_details.password).trigger('input').keydown().keyup();
另一个粗糙的方法是从后台页面阻止AngularJs库,并尝试使其工作。但这也不起作用


如何对此页面进行表单自动填充?

为了记录输入内容已更改,您需要在设置字段内容后手动触发
输入事件

代码大致可以转换为:

该代码粘贴到Chrome的控制台时,会触发表单提交。我打赌它也会与
change
事件一起工作

由于您正在进行Chrome扩展,因此需要将此代码注入页面。您可以通过在
manifest.json
中指定
“content\u scripts”
键来实现这一点,就像这样(请注意,站点的URL是存在的,因此包含触发表单更改的逻辑的脚本
inject.js
不会被注入您访问的所有页面):

然后,例如,在扩展的弹出脚本中,您可以使用调用使用
inject.js
注入的函数


您也可以使用
executeScript
直接注入上述代码,并完全跳过脚本注入,但随着代码的增长,您可能希望将所有内容都保存在适当的js文件中,只需使用此API调用函数即可。

我们需要a来回答您的问题需要a的原因是我们想提供帮助。如果我们不必重新创建复制问题所需的任何代码,那么帮助就容易多了。这是您已经拥有的代码。因此,请帮助我们帮助您,并提供一份完整的报告,以重复此类问题的问题。如果没有帮助,甚至开始帮助你所需的努力量也要高得多,这大大减少了愿意/能够帮助你的人数。即使我们付出了额外的努力,我们也必须猜测你可能遇到的问题的重要部分。如果你试图得到答案,你最好将问题集中在主题上(包括完整的问题),而不是发布悬赏。你没有让任何人回答你的问题的主要原因是因为这个问题写的方式几乎无法回答。我建议您查看网站上的各种可用资源(例如)。除了该页面上的链接之外,您可能还想阅读。由于这个问题目前已经写好,我通常会投票将其关闭,因为“不清楚您在问什么”,或者是一个调试问题,没有问题描述和所需操作的描述,或者可能有一个“太广泛”的关闭原因。鉴于有悬赏,我们不能结束这个问题。但是,请将此评论视为一个强烈的建议,建议您解决这个问题以改进它。不知道为什么从内容脚本中执行相同的操作不会起作用。我不知道您是否尝试使用jQuery的
触发器
功能,但我注意到,在某些情况下,当使用React或Angular之类的框架时,将本机事件与
dispatchEvent
一起使用效果更好。
document.getElementById('loginEmailMobile').value = 'test@test.com'
document.getElementById('loginEmailMobile').dispatchEvent(new Event('input'))
document.getElementById('clientpassword').value = 'password'
document.getElementById('clientpassword').dispatchEvent(new Event('input'))
document.getElementById('signInButton').dispatchEvent(new Event('click'))
"content_scripts": [
    {
        "matches": ["https://login.freecharge.in/*"],
        "js": ["js/inject.js"]
    }
],