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

Man*_*ali 3 javascript java selenium-webdriver

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

第一种方式:

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

第二种方式:

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

第三种方式:

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

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

And*_*gan 7

你的第一个产生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方法.

这里的所有内容都包含在一个非常相似的主题中.