Javascript error: missing ) after argument list

Javascript error: missing ) after argument list

我没找到这个错误的原因。它似乎在第 4 行。我尝试了各种不同的方法。谁能指出我哪里出错了?

public WebElement jsQuery(String componentQuery) {
    String cmd = "arguments[0].querySelector('" + componentQuery +"')";
    String js = "return " + cmd + ".id;";
   // String id = (String) js.executeScript("return document.querySelector('" + componentQuery +"').id");
    String id = (String) ((JavascriptExecutor) driver).executeScript(js);
    waitForJavascript(5000, 3);
    return driver.findElement(By.id(id));
}

您需要在 componentQuery Java 变量中转义引号。

String componentQueryEscaped = componentQuery.replaceAll("'", "\'");

您还可以更改 JS 代码以使用反引号代替单引号:

"arguments[0].querySelector(`" + componentQuery + "`)";

但第一个解决方案更可靠。