【问题标题】:org.openqa.selenium.WebDriverException: unknown error: Runtime.evaluate threw exception: SyntaxError: missing ) after argument listorg.openqa.selenium.WebDriverException:未知错误:Runtime.evaluate 抛出异常:SyntaxError: missing ) 在参数列表之后
【发布时间】:2016-05-18 02:45:26
【问题描述】:

我正在开发 selenium webdriver,我需要在不使用 sendkeys 方法的情况下输入文本,因为搜索弹出文本字段是隐藏的。所以我写了下面的代码:

第一种方式:

((JavascriptExecutor)driver).executeScript("document.getElementByXpath('//input[@class='form-control input-small input-inline']').value='TextValue'");

第二种方式:

JavascriptExecutor jse = (JavascriptExecutor) driver;
//jse.executeScript("document.getElementByXpath('//input[@class='form-control input-small input-inline']').value ='abcd';");

第三种方式:

JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].type ='search';",chemObject.getSearchPopup());

但我收到标题中提到的语法错误。

【问题讨论】:

  • 能否请您添加该元素及其父元素的 HTML 代码

标签: javascript java selenium-webdriver


【解决方案1】:

你的第一个是产生 JavaScript 错误,原因是混淆了单引号,你不会从 Java 代码中看到,直到 JS 被执行。

最简单的解决方法是替换:

((JavascriptExecutor)driver).executeScript("document.getElementByXpath('//input[@class='form-control input-small input-inline']').value='TextValue'");

与:

((JavascriptExecutor)driver).executeScript("document.getElementByXpath(\"//input[@class='form-control input-small input-inline']\").value='TextValue'");

但是,它仍然对您不起作用(也不是您的第二次尝试),因为 getElementByXpath 不是 JavaScript DOM 方法。

这里的very similar thread 涵盖了所有内容。

【讨论】:

  • 您好,如果它帮助您解决了您的问题,请“接受”这个答案(绿色勾号) - 谢谢!
猜你喜欢
  • 2017-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-11
  • 2018-06-15
  • 1970-01-01
  • 2018-02-28
相关资源
最近更新 更多