首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kantu (Selenium):如何将元素推送到现有数组

Kantu (Selenium):如何将元素推送到现有数组
EN

Stack Overflow用户
提问于 2019-08-28 16:38:50
回答 1查看 105关注 0票数 0

如何在Kantu中向现有数组添加元素

我执行了以下代码,但name2、length2、namesContent2并不像预期的那样

代码语言:javascript
复制
{
  "Name": "testArrayPush",
  "CreationDate": "2019-8-28",
  "Commands": [
    {
      "Command": "storeEval",
      "Target": "new Array ('cat','dog','fish','dog','?','frog','dog','horse','??elephant')",
      "Value": "names"
    },
    {
      "Command": "storeEval",
      "Target": "storedVars['names'].length",
      "Value": "length"
    },
    {
      "Command": "storeEval",
      "Target": "storedVars['names']",
      "Value": "namesContent"
    },
    {
      "Command": "echo",
      "Target": "array names = ${namesContent}",
      "Value": ""
    },
    {
      "Command": "echo",
      "Target": "array length = ${length}",
      "Value": ""
    },
    {
      "Command": "storeEval",
      "Target": "[storedVars['names'],'Thomas']",
      "Value": "names2"
    },
    {
      "Command": "storeEval",
      "Target": "storedVars['names2'].length",
      "Value": "length2"
    },
    {
      "Command": "storeEval",
      "Target": "storedVars['names2']",
      "Value": "namesContent2"
    },
    {
      "Command": "echo",
      "Target": "array names2 = ${namesContent2}",
      "Value": ""
    },
    {
      "Command": "echo",
      "Target": "array length2 = ${length2}",
      "Value": ""
    }
  ]
}

这就是输出,但我期望得到一个长度为10的新数组

该怎么做呢?

代码语言:javascript
复制
[status]
Playing macro testArrayPush
[info]
Executing:  | storeEval | new Array ('cat','dog','fish','dog','?','frog','dog','horse','??elephant') | names | 
[info]
Executing:  | storeEval | storedVars['names'].length | length | 
[info]
Executing:  | storeEval | storedVars['names'] | namesContent | 
[info]
Executing:  | echo | array names = ${namesContent} |  | 
[echo]
array names = cat,dog,fish,dog,?,frog,dog,horse,??elephant
[info]
Executing:  | echo | array length = ${length} |  | 
[echo]
array length = 9
[info]
Executing:  | storeEval | [storedVars['names'],'Thomas'] | names2 | 
[info]
Executing:  | storeEval | storedVars['names2'].length | length2 | 
[info]
Executing:  | storeEval | storedVars['names2'] | namesContent2 | 
[info]
Executing:  | echo | array names2 = ${namesContent2} |  | 
[echo]
array names2 = cat,dog,fish,dog,?,frog,dog,horse,??elephant,Thomas
[info]
Executing:  | echo | array length2 = ${length2} |  | 
[echo]
array length2 = 2
[info]
Macro completed (Runtime 5.47s)

第一个数组是ok的,它的长度为9个元素

我想将几个新元素添加到这个现有数组中(稍后在代码循环中对它们进行循环)。

但是第二个数组只有两个元素,第一个元素是旧的数组,第二个元素是新添加的元素

如何正确对待这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-28 17:25:10

如果希望保持原始数组不变,可以使用concat将新元素推送到旧数组的副本中。

所以

代码语言:javascript
复制
{
  "Command": "storeEval",
  "Target": "[storedVars['names'],'Thomas']",
  "Value": "names2"
}

转到

代码语言:javascript
复制
{
  "Command": "storeEval",
  "Target": "storedVars['names'].concat('Thomas')",
  "Value": "names2"
},

输出:

代码语言:javascript
复制
[info]

Executing:  | storeEval | storedVars['names'].concat('Thomas') | names2 | 

[info]

Executing:  | storeEval | storedVars['names2'].length | length2 | 

[info]

Executing:  | storeEval | storedVars['names2'] | namesContent2 | 

[info]

Executing:  | echo | array names2 = ${namesContent2} |  | 

[echo]

array names2 = cat,dog,fish,dog,?,frog,dog,horse,??elephant,Thomas

[info]

Executing:  | echo | array length2 = ${length2} |  | 

[echo]

array length2 = 10
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57688247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档