填写表单,使用getElementInfo获取输入名称

时间:2017-11-06 06:39:50

标签: casperjs

我尝试将dinamicaly命名为字段的名称然后失败。如果我在引号之间写下名字,它就有效。

var elms = this.getElementsInfo('select');
var name1 = elms[0].attributes.name;
var name2 = elms[1].attributes.name;
utils.dump(name1); // "tb|2564"
utils.dump(name2); // "tb|19"

这有效:

this.fill('form#tbsa', {
    "tb|2564": 10,
    "tb|19": 15
}, true);

这失败了:

this.fill('form#tbsa', {
    name1: 10,
    name2: 15
}, true);

有人知道为什么吗? 谢谢, - 阿尔宾

1 个答案:

答案 0 :(得分:1)

您不能按照目前的方式执行此操作,因为这会设置属性name1name2的值。

如果您想通过变量中的参数名称来创建对象,则必须先创建对象。

这将是以下代码:

var foo = {};
foo[name1] = 10;
foo[name2] = 15;
this.fill('form#tbsa', foo, true);