Chrome插件模拟DOM操作

准备工作

http:\/\/www.google.cn\/intl\/zh-CN\/chrome\/browser\/ 下载适合你的系统的Chrome并安装

Chrome脚本

新建一个文件夹,进入这个文件夹。

然后新建一个manifest.json文件,写入以下内容。

{
    "manifest_version": 2,
    "name": "模拟DOM操作Demo",
    "description": "以http://ssfw.xjtu.edu.cn/为例,讲解Chrome插件模拟页面操作的方法",
    "version": "1.0.0",
    "permissions": [
        "http://ssfw.xjtu.edu.cn/*"
    ],
    "content_scripts": [{
        "matches": [
            "http://ssfw.xjtu.edu.cn/*"
        ],
        "js": [
            "demo.js"
        ]
    }]
}

然后新建一个 demo.js (文件名必须和上面的声明文件中的 content_scripts > js 那个文件名对应),写入以下内容

if (document.querySelector('div.title span').textContent == '学生评教') {
    var courses = document.querySelectorAll('#queryGridf1161 tbody tr');
    var evaluated = false;
    for (var i = 0; i < courses.length; ++i) {
        var tds = courses[i].children;
        var a = tds[tds.length - 1].children[0];
        if (a.textContent == '评教') {
            setInterval(function () { a.click(); }, 1000);
            evaluated = true;
            break;
        }
    }
    var submited = false;
    if (!evaluated) {
        var ztpj = document.getElementById('ztpj');
        var pgyj = document.getElementById('pgyj');
        if (ztpj.value == '' && pgyj.value == '') {
            ztpj.value = '很好';
            pgyj.value = '很好';
            var items = document.querySelectorAll('#zbdfTable tr');
            for (i = 0; i < items.length; ++i) {
                if (items[i].children[0].textContent.trim() == '教师评价') {
                    j = 3 + Math.round(Math.random());
                    items[i].children[j].children[0].children[0].click();
                }
            }
            var submit_button = document.querySelector('input[value="提交"]');
            if (submit_button) {
                submit_button.click();
                submited = true;
            }
        }
        if (!submited) {
            location.href = 'http://ssfw.xjtu.edu.cn/index.portal?.p=Znxjb20ud2lzY29tLnBvcnRhbC5zaXRlLmltcGwuRnJhZ21lbnRXaW5kb3d8ZjExNjF8dmlld3xub3JtYWx8YWN0aW9uPXF1ZXJ5';
        }
    }
}

然后在Chrome中访问 chrome:\/\/extensions ,点击 加载已解压的扩展程序... ,选择刚才新建的那个文件夹即可。

现在访问 http:\/\/ssfw.xjtu.edu.cn\/ 只要已进入评教的那个页面,就会自动开始评教。

代码说明

这个Chrome插件使用的并不是模拟HTTP请求、正则匹配,这个完全利用浏览器的功能,在页面上模拟点击和输入操作,代码十分简单,而且效果与纯手动操作是完全一样的。这个代码的另一个优点就是不需要处理任何有关登录的操作。

如果想深入了解,可以搜索Chrome插件开发、DOM操作的相关知识。

results matching ""

    No results matching ""