Kantu越来越慢

问题描述 投票:1回答:1

我正在使用Kantu(Selenium IDE,如chrome扩展)来实现一些Web自动化。

在我的程序本身,有一个无限循环,使用标签和goto构建,所以类似于:

label: start
*some code*
goto: start

在代码部分中,有一些变量声明(大多数是storeEval)。

正如我所说的那样,执行速度越来越慢,你可以清楚地看到它每秒3次,就像3秒内一次。

有趣的是,在Chrome Taskmanager(Shift + ESC)中,Kantu RAM的使用率越来越高。每当我停止脚本时,关闭Kantu并重新打开它并再次启动脚本,再次罚款,那么它又是每秒3次。

因此看起来Kantu运行时间越长,RAM使用率就越高。它似乎没有自动设置回来。

有人碰巧知道问题是什么吗?我唯一想到的是,它可能为每个storeEval创建一个新变量,即使它是相同的变量名称?这听起来合乎逻辑吗?可能这个?如果是的话,我能改变它吗?如果没有,还有什么可能是问题?我想到的另一件事是日志,在Kantu窗口中,有日志,它们永远不会被自动清除。清除它们也可以释放RAM,使脚本也更快一些。有没有办法自动删除日志或根本不记录?

谢谢您的帮助!

google-chrome selenium-ide
1个回答
0
投票

我使用!runtime测量这个,你是对的。在我的测试中它来自

[echo]循环1取0.07 ...

[echo]循环956花了0.15 ...

我建议你把它报告为github repo的一个错误。

真正的解决方案可能需要一些认真的调试但作为一种解决方法,你可以使用command line feature定期启动Chrome和宏,然后几分钟后close Chrome,并再次开始新鲜。 Powershell或Python脚本可以做到这一点。

我的测试:

{
  "CreationDate": "2018-3-6",
  "Commands": [
    {
      "Command": "store",
      "Target": "fast",
      "Value": "!replayspeed"
    },
    {
      "Command": "store",
      "Target": "1",
      "Value": "i"
    },
    {
      "Command": "open",
      "Target": "https://stackoverflow.com/questions/49138473/kantu-getting-slower-and-slower",
      "Value": ""
    },
    {
      "Command": "label",
      "Target": "111",
      "Value": ""
    },
    {
      "Command": "store",
      "Target": "${!runtime}",
      "Value": "starttime"
    },
    {
      "Command": "click",
      "Target": "id=question-header",
      "Value": ""
    },
    {
      "Command": "storeEval",
      "Target": "parseFloat(\"${!runtime}\")-parseFloat(\"${starttime}\")",
      "Value": "t"
    },
    {
      "Command": "echo",
      "Target": "loop ${i} took ${t}",
      "Value": "blue"
    },
    {
      "Command": "storeEval",
      "Target": "${i} + 1",
      "Value": "i"
    },
    {
      "Command": "gotoLabel",
      "Target": "111",
      "Value": ""
    }
  ]
}
© www.soinside.com 2019 - 2024. All rights reserved.