我在内存中有一个html字符串(无法将其写入文件),我想在Selenium远程Webdriver中呈现该html字符串并获取屏幕截图。以下是我使用的代码
RemoteWebDriver driver = new RemoteWebDriver(new URL("http://localhost:9515"), capabilities);
driver.get("about:blank");
((JavascriptExecutor) driver)
.executeScript("arguments[0].innerHTML='" + StringEscapeUtils.escapeHtml3(_html) + "'");
这种方法的问题是,由于换行符或其他一些字符,它中断了Java脚本的执行,并出现以下错误
{"errorMessage":"Unexpected EOF","request":{"headers":{"Accept-Encoding":"gzip,deflate","Connection":
我收到了日志错误消息,因此只粘贴了其中的某些部分。
我在SO中研究了this,但并没有太大帮助。
您能帮我解决这个问题吗?我的问题是我想在selenium驱动程序中加载html字符串并获取屏幕截图。
答案 0 :(得分:1)
假设_html
是您的html字符串,则应遵循以下内容:
driver.executeScript('document.body.innerHTML = arguments[0]', _html)
您不需要转义引号或换行符。
答案 1 :(得分:1)
要在同一 TAB 中的动态 URL 中打开,可以使用:
driver.get("about:blank");
((JavascriptExecutor) driver).executeScript("window.location.replace(" + StringEscapeUtils.escapeHtml3(_html) + ");");
要在新的 TAB 中的动态 URL 中打开,请使用:
driver.get("about:blank");
((JavascriptExecutor) driver).executeScript("window.open('" + StringEscapeUtils.escapeHtml3(_html) +"');");