Javascript 捕获表单字段并用它们重新填充表单

Javascript 捕获表单字段并用它们重新填充表单,javascript,testing,greasemonkey,Javascript,Testing,Greasemonkey,我目前正在测试一个大型web表单,希望能够轻松地使用多个不同批次的测试数据填充表单,而不必每次都键入这些数据 是否有一种通用的方法来捕获网页上的表单输入,并将它们重新填充到不同的页面加载中?我认为像greasemonkey这样的工具可能可以做这样的事情。您描述的任务非常适合自动化测试工具,例如 Selenium是一套跨多个平台自动化web应用程序测试的工具 您描述的任务非常适合自动化测试工具,例如 Selenium是一套跨多个平台自动化web应用程序测试的工具 如果所有字段都有正确的id,则可以

我目前正在测试一个大型web表单,希望能够轻松地使用多个不同批次的测试数据填充表单,而不必每次都键入这些数据


是否有一种通用的方法来捕获网页上的表单输入,并将它们重新填充到不同的页面加载中?我认为像greasemonkey这样的工具可能可以做这样的事情。

您描述的任务非常适合自动化测试工具,例如

Selenium是一套跨多个平台自动化web应用程序测试的工具


您描述的任务非常适合自动化测试工具,例如

Selenium是一套跨多个平台自动化web应用程序测试的工具


如果所有字段都有正确的id,则可以使用如下内容:

//set the data 
var data = {
    field1 : "valueforfield1",
    field2 : "valueforfield2",
    ....
};

//populate the form
for (var prop in data) {
    if (data.hasOwnProperty(prop)){[
        var el = document.getElementById("el");
        if (el) {
            el.value = data[prop]; 
        }
    }
}
如果他们没有id,或者你更喜欢使用名字,那么你可以这样做

var form = document.forms.formname;
var inputs = form.getElementsByTagName("input");
var selects = form.getElementsByTagName("select");
​var all = Array.prototype.concat.call(inputs, selects), i = all.length;

while (i--){
    var el = all[i];
    if (el.name) && el.name in data){
         el.value = data[el.name];
    }
}

如果所有字段都有正确的id,则可以使用如下内容:

//set the data 
var data = {
    field1 : "valueforfield1",
    field2 : "valueforfield2",
    ....
};

//populate the form
for (var prop in data) {
    if (data.hasOwnProperty(prop)){[
        var el = document.getElementById("el");
        if (el) {
            el.value = data[prop]; 
        }
    }
}
如果他们没有id,或者你更喜欢使用名字,那么你可以这样做

var form = document.forms.formname;
var inputs = form.getElementsByTagName("input");
var selects = form.getElementsByTagName("select");
​var all = Array.prototype.concat.call(inputs, selects), i = all.length;

while (i--){
    var el = all[i];
    if (el.name) && el.name in data){
         el.value = data[el.name];
    }
}

谢谢你的回答。我决定使用imacros浏览器插件,因为我认为它最适合我这次遇到的问题。

谢谢你的回答。我决定使用imacros浏览器插件,因为我认为它最适合我这次遇到的问题