将 javascript 代码从 storeEval 转换为 executeScript_Sandbox (Selenium Ide Kantu Ui.Vision)

Posted

技术标签:

【中文标题】将 javascript 代码从 storeEval 转换为 executeScript_Sandbox (Selenium Ide Kantu Ui.Vision)【英文标题】:Conversion javascript code from storeEval to executeScript_Sandbox (Selenium Ide Kantu Ui.Vision) 【发布时间】:2020-02-01 19:15:36 【问题描述】:

我需要转换两个 javascript 代码,以从 storeEval 获取首选格式的日期和时间,以在 Selenium Ide Kantu Ui.Vision 中使用执行Script_Sandbox

从一些更新中,storeEval 已被弃用,现在需要使用新命令 executeScript_Sandbox

这里有一些信息: https://ui.vision/docs/selenium-ide/executescript

我需要将 storeEval 中的 2 个代码转换为与新 Selenium Ide Kantu Ui.Vision 兼容的 executeScript_Sandbox。

我的第一个 storeEval 代码(已弃用)

var d = new Date();
var m = ((d.getMonth() + 1 ) < 10) ? "0" + (d.getMonth() + 1) : (d.getMonth() + 1);
var day = d.getDate() < 10 ? "0" + d.getDate() : d.getDate();
day + "-" + m + "-" + d.getFullYear();

我的第二个 storeEval 代码(已弃用)

let d = new Date();
let h = d.getHours();
h = h < 10 ? "0" + h : h;
let m = d.getMinutes();
m = m < 10 ? "0" + m : m;
let s = d.getSeconds();
s = s < 10 ? "0" + s : s;
h + "-" + m + "-" + s;

【问题讨论】:

根据文档,沙盒版本的工作方式与以前完全相同,只是运行位置有所不同......那么问题是什么?您是否使用沙盒运行您的代码?结果如何?错误在哪里? 我贴了解决方案,你可以看一下,如果你不知道硒和kantu不能解决这个问题。 【参考方案1】:

这是解决executeScript_Sandbox命令需要返回否则不起作用,现在代码与新的executeScript_Sandbox命令(selenium和Kantu)兼容。

旧的 storeEval 已弃用且不兼容。


  "Name": "test-date",
  "CreationDate": "2019-10-4",
  "Commands": [
    
      "Command": "executeScript_Sandbox",
      "Target": "var d = new Date();var m = ((d.getMonth()+1)<10) ? \"0\" + (d.getMonth()+1):(d.getMonth()+1);var day=d.getDate()<10 ? \"0\" + d.getDate():d.getDate();return day + \"-\" + m + \"-\" + d.getFullYear();",
      "Value": "text1"
    ,
    
      "Command": "executeScript_Sandbox",
      "Target": "let d = new Date(); let h = d.getHours(); h = h < 10 ? \"0\" + h : h; let m = d.getMinutes(); m = m < 10 ? \"0\" + m : m; let s = d.getSeconds(); s = s < 10 ? \"0\" + s : s; return h + \"-\" + m + \"-\" + s;",
      "Value": "text2"
    ,
    
      "Command": "echo",
      "Target": "$text1",
      "Value": ""
    ,
    
      "Command": "echo",
      "Target": "$text2",
      "Value": ""
    
  ]

【讨论】:

以上是关于将 javascript 代码从 storeEval 转换为 executeScript_Sandbox (Selenium Ide Kantu Ui.Vision)的主要内容,如果未能解决你的问题,请参考以下文章

通过 WebView2 将对象从 .NET 设置为 JavaScript 代码

如何将变量和数据从 PHP 传递到 JavaScript?

如何将变量和数据从 PHP 传递到 JavaScript?

将变量从VB函数传递到客户端javascript

将 javascript 代码从 storeEval 转换为 executeScript_Sandbox (Selenium Ide Kantu Ui.Vision)

将列表字符串从 C# 传递到 JavaScript