Загрузка динамического URL с помощью веб-драйвера Selenium - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть html-строка (я не могу записать ее в файл) в памяти, я хочу отобразить html-строку в удаленном веб-драйвере Selenium и сделать снимок экрана.Ниже приведен код, который я использовал

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, но это мне не сильно помогло.

Можете ли вы помочь мне решить эту проблему?У меня вопрос, я хочу загрузить строку HTML в драйвере селена и сделать снимок экрана.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Чтобы открыть в динамическом URL в том же TAB , вы можете использовать:

driver.get("about:blank");
((JavascriptExecutor) driver).executeScript("window.location.replace(" + StringEscapeUtils.escapeHtml3(_html) + ");");

Чтобы открыть в динамическом URL в новом TAB вы можете использовать:

driver.get("about:blank");
((JavascriptExecutor) driver).executeScript("window.open('" + StringEscapeUtils.escapeHtml3(_html) +"');");
0 голосов
/ 07 декабря 2018

Предполагая, что _html является вашей HTML-строкой, она должна выглядеть следующим образом:

driver.executeScript('document.body.innerHTML = arguments[0]', _html)

Вам не нужно экранировать кавычки или символы новой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...