V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
hanmeimei
V2EX  ›  JavaScript

如何用 js 触发页面的 js 验证来实现模拟人工操作

  •  
  •   hanmeimei · 2016-10-12 18:58:02 +08:00 · 3029 次点击
    这是一个创建于 2942 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自从阿里月饼事件,对 js 产生了兴趣。最近在摸索如何利用 js 来模拟。现在遇到一下一个页面: 网址: https://accounts.autodesk.com/register [利用 chrome 注入 jquery 插件来实现任何网页执行 jquery 。 插件网址: https://chrome.google.com/webstore/detail/inject-jquery/indebdooekgjhkncmgbkeopjebofdoid?utm_source=chrome-app-launcher-info-dialog ]

    针对上面的注册网址。我写了一下代码:

    $("#firstname_str").val("han"); $("#lastname_str").val("meimei"); $("#email_str").val("[email protected]"); $("#confirm_email_str").val("[email protected]"); $("#password").val("hanmeimeizhaolilei"); if($("#PrivacyPolicyAccepted").val()==="false"){ $("#privacypolicy_checkbox").click(); }

    填表是自动填写了,但是表单需要自动验证邮箱等正确与否,需要调用到组件。。 我用 .change 还是无法让它工作。

    请问如何分析这个页面,实现通过代码触发? 求渔,不求鱼。

    11 条回复    2016-10-13 00:42:26 +08:00
    loading
        1
    loading  
       2016-10-12 19:43:26 +08:00 via Android
    求渔是吧。
    请看 《 javascript 高级程序设计》和 《 javascript dom 编程》
    Biwood
        2
    Biwood  
       2016-10-12 20:05:42 +08:00 via Android
    浏览器有安全机制,你无法只通过 JS 代码来模拟人类的行为,只能手动触发, Event 对象有个 isTrusted 属性,就是用来区别人类和机器的
    darluc
        3
    darluc  
       2016-10-12 20:26:53 +08:00
    hanmeimei
        4
    hanmeimei  
    OP
       2016-10-12 21:04:06 +08:00
    @loading 有空看看。因为现在看了基础,想边实践,变学习。有些问题会纠结很久没有进展,所以,希望有人帮忙指点一下。
    hanmeimei
        5
    hanmeimei  
    OP
       2016-10-12 21:17:19 +08:00
    @darluc 感谢。但是现在基础有点差。英文不是很懂。 nodejs 这个入门也要一段时间。我要先看看 js 相关的。能否帮忙把上面的这个分析一下。
    hanmeimei
        6
    hanmeimei  
    OP
       2016-10-12 21:18:15 +08:00
    @Biwood 现在这个 chrome 好像没有支持。但是上面这个如何触发呢?
    iyaozhen
        7
    iyaozhen  
       2016-10-12 21:23:24 +08:00 via Android
    直接提交不行吗?
    hanmeimei
        8
    hanmeimei  
    OP
       2016-10-12 21:45:54 +08:00
    @iyaozhen 这个相当于一个联系。人工点击当然是可以的咯
    marsLeo
        9
    marsLeo  
       2016-10-12 23:54:23 +08:00
    这网页应该用 $("#btnSubmit").click(); 来触发提交
    jinwyp
        10
    jinwyp  
       2016-10-12 23:56:16 +08:00
    darluc
        11
    darluc  
       2016-10-13 00:42:26 +08:00
    @hanmeimei 简单来说就是个可以控制浏览器做各种操作的测试库
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2463 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 10:36 · PVG 18:36 · LAX 03:36 · JFK 06:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.