【问题标题】:Selenium : How to send variable character strings through executeScript()Selenium:如何通过 executeScript() 发送可变字符串
【发布时间】:2018-04-01 10:10:31
【问题描述】:

我需要在系统中进行一些自动测试。一些字段得到了验证,它可能不能由 sendKeys 完成(然后我正在这样做,它只是写一个字符串,而不是整个字符串。尝试通过字符串迭代 sendKeys,也没有工作)

现在我正在尝试通过 javascript 向字段输入值。有类似的东西:

WebElement pesel = driver.findElement(fldPesel);
jse.executeScript("arguments[0].value='80120804076';", pesel);

但是,我不希望在 executeScript 中具有值,而是在 java 变量中具有值,因此它看起来和工作得更好。并得到了一些随机化

我怎么能这样做?

【问题讨论】:

  • 当您使用 JS 将值直接写入元素时,您会缩短在该输入上创建的任何验证。您可能会在该页面或后续页面上导致各种问题。最好找到一种使用.sendKeys()输入文本的方法。

标签: javascript java selenium selenium-webdriver automated-tests


【解决方案1】:

根据您的说法我不希望在 executeScript 中具有值,但 java 变量您可以通过 Java 引用 Sting 值变量:

String myValue = "80120804076";
WebElement pesel = driver.findElement(fldPesel);
jse.executeScript("arguments[0].value='" + myValue + "';", pesel);

【讨论】:

  • 谢谢!你能给我建议,我如何在这个领域运行 ajax?进场:onchange="A4J.AJAX.Submit('j_id259',event,{'control':this,'similarityGroupingId':'j_id259:j_id324:j_id333','parameters':{'j_id259:j_id324:j_id333 ':'j_id259:j_id324:j_id333','ajaxSingle':'j_id259:j_id324:kosEdycjaNazwisko1'} ) "
  • @MZal 你能针对你的新要求提出一个新问题吗?
【解决方案2】:

您可以使用多个arguments。您还应该使用setAttribute 来执行此操作

String value = "80120804076";
WebElement pesel = driver.findElement(fldPesel);
jse.executeScript("arguments[0].setAttribute('value', `arguments[1]');", pesel, value);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-16
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    相关资源
    最近更新 更多