【问题标题】:Passing a variable through Java Script Executor in Selenium Webdriver通过 Selenium Webdriver 中的 Java Script Executor 传递变量
【发布时间】:2014-10-30 13:50:19
【问题描述】:

我想将一个 java 变量传递给 javascript..

这是我的代码的一部分:

String localArray[][] = new String[50000][9];
String strContratoNumero;

for(int i=1; i<10;i++){
    strContratoNumero = localArray[i][0];

我试过这个:

((JavascriptExecutor)driver).executeScript("document.getElementById('txtNr_Contrato_Plano_Trab').value=arguments[0]",strContratoNumero.substring(0,9));

但它不起作用。

您能告诉我如何通过上述命令中的变量发送值吗?

PS:我正在从 excel 表中获取数据.. 但不要担心,因为这部分正在工作。

【问题讨论】:

  • 我不明白你显示的 for 循环是什么意思。你说它不起作用,但你没有说它是如何不起作用的。你得到一个Java异常吗?您收到 JavaScript 错误吗?有什么事情没有发生吗?你想做的事情是完全可行的,但没有正确的细节,很难知道你的情况出了什么问题。

标签: java javascript selenium


【解决方案1】:

你为什么不直接使用字符串连接?

((JavascriptExecutor)driver).executeScript("document.getElementById('txtNr_Contrato_Plano_Trab').value='"+strContratoNumero.substring(0,9)+"'");

【讨论】:

  • 好吧,这将一直有效,直到 OP 在字符串中有引号应传递给 JavaScript 端的情况下尝试此操作。 (对于合同号来说可能不是一个巨大的风险,但通常可能是一个问题。)通过将字符串作为参数传递,OP 想要做的事情是完全可行的。我一直这样做。
  • 是的,这当然是可行的。提供替代方案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-17
  • 2016-07-28
  • 2018-10-11
相关资源
最近更新 更多