org.openqa.selenium.WebDriverException:未知错误:Runtime.evaluate引发异常:SyntaxError:missing)参数列表后

时间:2016-02-08 12:24:06

标签: javascript java selenium-webdriver

我正在研究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());

但是我在标题中提到语法错误。

1 个答案:

答案 0 :(得分:6)

你的第一个产生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涵盖了这一点。