V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
me15000
V2EX  ›  问与答

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

  •  
  •   me15000 · 2017-09-16 00:17:41 +08:00 · 2130 次点击
    这是一个创建于 2617 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 条回复    2017-09-16 10:30:34 +08:00
    ferrum
        1
    ferrum  
       2017-09-16 00:36:06 +08:00
    有那么难吗,直接用 LastPass 填充密码不行?
    freed
        2
    freed  
       2017-09-16 01:08:34 +08:00
    只懂一丢丢 javascript

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

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

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

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

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

    来欺骗下 vue
    aver4vex
        5
    aver4vex  
       2017-09-16 08:44:53 +08:00
    既然直接赋值不行,那就模拟键盘输入呗,我记得用 python+selenium 是可以的,js 绝对也是可以实现的。
    me15000
        6
    me15000  
    OP
       2017-09-16 10:01:55 +08:00
    @zbinlin 昨天晚上模拟事件,尝试了半天,没达到目的
    me15000
        7
    me15000  
    OP
       2017-09-16 10:30:34 +08:00
    @zbinlin 尝试了下,确实可行,多谢多谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5425 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 07:01 · PVG 15:01 · LAX 23:01 · JFK 02:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.