gpt4 book ai didi

javascript - 组织.openqa.selenium.JavascriptException : SyntaxError: '' string literal contains an unescaped line break while using executeScript through Selenium

转载 作者:行者123 更新时间:2023-11-29 18:46:21 34 4
gpt4 key购买 nike

org.openqa.selenium.JavascriptException: SyntaxError: '' string literal 在通过 Selenium 使用 executeScript 时包含未转义的换行符

executeScript() 以单行 String 为例:

String myText = "80120804076";

但是当我尝试发送多行 String 时,引发了 JavascriptException

  • 代码试验:

    import org.openqa.selenium.By;
    import org.openqa.selenium.JavascriptExecutor;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;

    public class send_large_text {

    static WebDriver driver;
    public static void main(String[] args) {
    System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
    driver = new FirefoxDriver();
    driver.get("https://translate.shell.com/");
    //String myText = "80120804076";
    String myText = "No, there is no way to hide the console window of the chromedriver.exe \n"
    + "in the .NET bindings without modifying the bindings source code. This is seen \n"
    + "as a feature of the bindings, as it makes it very easy to see when your code \n"
    + "hasn\'t correctly cleaned up the resources of the ChromeDriver, since the console window \n"
    + "remains open. In the case of some other languages, if your code does not properly clean up \n"
    + "the instance of ChromeDriver by calling the quit() method on the WebDriver object, \n"
    + "you can end up with a zombie chromedriver.exe process running on your machine.";
    ( (JavascriptExecutor) driver).executeScript("arguments[0].value=\'" + myText + "\';", new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("textarea.form-control#translateText"))));
    }
    }
  • 观察到的错误:

    1544184402064   mozrunner::runner   INFO    Running command: "C:\\Program Files\\Mozilla Firefox\\firefox.exe" "-marionette" "-foreground" "-no-remote" "-profile" "C:\\Users\\ATECHM~1\\AppData\\Local\\Temp\\rust_mozprofile.b4OAHY7RViE6"
    1544184406841 Marionette INFO Listening on port 11919
    1544184406988 Marionette WARN TLS certificate errors will be ignored for this session
    Dec 07, 2018 5:36:47 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Detected dialect: W3C
    Exception in thread "main" org.openqa.selenium.JavascriptException: SyntaxError: '' string literal contains an unescaped line break
    Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:13:22.693Z'
    System info: host: 'ATECHM-03', ip: '192.168.1.6', os.name: 'Windows 8', os.arch: 'amd64', os.version: '6.2', java.version: '1.8.0_172'
    Driver info: org.openqa.selenium.firefox.FirefoxDriver
    Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 63.0.3, javascriptEnabled: true, moz:accessibilityChecks: false, moz:geckodriverVersion: 0.23.0, moz:headless: false, moz:processID: 5620, moz:profile: C:\Users\AtechM_03\AppData\..., moz:useNonSpecCompliantPointerOrigin: false, moz:webdriverClick: true, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, platformVersion: 6.2, rotatable: false, setWindowRect: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify}
    Session ID: 31ac155f-8f03-4adf-bc7b-a778f1235351
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
    at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:485)
    at demo.send_large_text.main(send_large_text.java:25)

我经历过相关的讨论:

引用:SyntaxError: unterminated string literal

仍然不知道我哪里出错了。谁能帮帮我?

最佳答案

这是对我有用的:

1) 在每个 \n 之前添加一个额外的斜杠,使其成为 \\n

2) 在撇号 hasn\'t 之前添加额外的斜线使其 hasn\\'

"No, there is no way to hide the console window of the chromedriver.exe \\n"
+ "in the .NET bindings without modifying the bindings source code. This is seen \\n"
+ "as a feature of the bindings, as it makes it very easy to see when your code \\n"
+ "hasn\\'t correctly cleaned up the resources of the ChromeDriver, since the console window \\n"
+ "remains open. In the case of some other languages, if your code does not properly clean up \\n"
+ "the instance of ChromeDriver by calling the quit() method on the WebDriver object, \\n"
+ "you can end up with a zombie chromedriver.exe process running on your machine.";

关于javascript - 组织.openqa.selenium.JavascriptException : SyntaxError: '' string literal contains an unescaped line break while using executeScript through Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53669371/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com