v2666
V2EX  ›  问与答

Javascript 折腾, Chrome 插件,实现自动登录失败,折腾了几个小时最终失败!

  •  
  •   v2666 · Sep 16, 2017 · 2540 views
    This topic created in 3181 days ago, the information mentioned may be changed or developed.

    https://mp.weixin.qq.com/ 想实现微信公众号管理后台不用输入账户密码的自动登录: 下面是页面注入的 Js

    	let uinfos = [{
    			"usn": "用户名",
    			"pwd": "密码"
    		}
    	];
    
    	let uinfo = uinfos[0];
    
    	
    	let usnobj = document.querySelector('[name="account"]');	
    	usnobj.value = uinfo.usn;
    	
    	let pwdobj = document.querySelector('[name="password"]');
    	pwdobj.value = uinfo.pwd;
    
    	setTimeout(function () { //模拟点击登录按钮
    		document.querySelector('.btn_login').click();
    	}, 200);
    

    最终提示我: 你还没有输入帐号!

    原因可能是,我直接给 input 赋值,无法触发 input 的 一些事件,而 mp.weixin.qq.com 公众号这个后台,有可能自己定义了事件模型,导致我最终无法成功

    7 replies    2017-09-16 10:30:34 +08:00
    bayallen
        1
    bayallen  
       Sep 16, 2017
    有那么难吗,直接用 LastPass 填充密码不行?
    freed
        2
    freed  
       Sep 16, 2017
    只懂一丢丢 javascript

    控制台里执行 document.getElementsByName('account')[0].value='123456',成功修改用户名框...

    不知道是不是楼主想要的效果..

    https://i.loli.net/2017/09/16/59bc0901c91fe.png
    freed
        3
    freed  
       Sep 16, 2017
    好吧我错了.原来是提交的时候没用..
    zbinlin
        4
    zbinlin  
       Sep 16, 2017   ❤️ 1
    看下了,页面是使用 vue 框架的,像 vue、react 里通过数据驱动页面的,直接改 dom 是很难生效的。

    这里在赋值之后可以触发下模拟 input 事件,比如

    ```
    ...
    usnobj.dispatchEvent(new UIEvent('input'));
    ...
    pwdobj.dispatchEvent(new UIEvent('input'));
    ```

    来欺骗下 vue
    aver4vex
        5
    aver4vex  
       Sep 16, 2017
    既然直接赋值不行,那就模拟键盘输入呗,我记得用 python+selenium 是可以的,js 绝对也是可以实现的。
    v2666
        6
    v2666  
    OP
       Sep 16, 2017
    @zbinlin 昨天晚上模拟事件,尝试了半天,没达到目的
    v2666
        7
    v2666  
    OP
       Sep 16, 2017
    @zbinlin 尝试了下,确实可行,多谢多谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5384 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 05:47 · PVG 13:47 · LAX 22:47 · JFK 01:47
    ♥ Do have faith in what you're doing.