【问题标题】:filling forms, get input name with getElementInfo填写表格,使用 getElementInfo 获取输入名称
【发布时间】:2017-11-06 06:39:50
【问题描述】:

我尝试获取字段的名称,但它失败了。如果我在引号之间写名字,它会起作用。

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);

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

【问题讨论】:

  • 因为使用第二个语句,您正在设置对象的属性name1name2 的值,而不是您想要的。这种行为是正确的。

标签: casperjs


【解决方案1】:

你现在不能这样做,因为这会设置属性name1name2的值。

如果你想通过变量中的参数名称来实现它,你必须先创建对象。

这将是以下代码:

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

【讨论】:

  • 谢谢。您的解决方案有效。现在我看到了问题,它将“name1”作为属性的名称,而不是作为变量。我想我以前从来没有遇到过这个问题。
猜你喜欢
  • 2016-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-07
  • 2020-06-06
相关资源
最近更新 更多