脚本执行器-传递单引号字符抛出“意外的标识符”

fcg9iug3  于 2022-10-07  发布在  其他
关注(0)|答案(1)|浏览(143)

我希望使用Java脚本执行器在脚本中传递下列值。

String value = "ac.saveDocket('CompanyRegistration','https://yyy.yyy',0);"
JavascriptExecutor executor = ((driver) as JavascriptExecutor)
WebElement webElement = driver.findElement(By.xpath("//div[@class=\'CodeMirror-code\']/div[1]//pre"))
executor.executeScript("arguments[0].innerHTML='$value';", webElement)

这会导致以下错误:

org.openqa.selenium.JavascriptException: javascript error: Unexpected identifier

没有特殊字符即可成功执行,因此问题肯定出在单引号上。

如何将特殊字符(如单引号)传递给JavaScript执行器?

drnojrws

drnojrws1#

这在浏览器控制台上有效:

arguments[0].innerHTML='ac.saveDocket('CompanyRegistration','https://yyy.yyy',0);'

对于Java代码,使用如下代码:

String value = "ac.saveDocket(\'CompanyRegistration\',\'https://yyy.yyy\',0);";

WebElement element = driver.findElement(By.xpath("your_xpath"));

JavascriptExecutor executor = (JavascriptExecutor)driver;

executor.executeScript("arguments[0].innerHTML='"+value+"'", element);

相关问题