Пытаемся добавить это к вашему pom
ОБНОВЛЕНО:
<dependency>
<groupId>org.seleniumhq.webdriver</groupId>
<artifactId>selenium-firefox-driver</artifactId>
<version>2.XX.X</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>2.XX.X</version>
</dependency>
Проверьте встроенную функцию encodeURIComponent (str) и encodeURI (str) .
В Вашем случае, это должно работать:
var myOtherUrl =
"http://example.com/index.html?url=" + encodeURIComponent(myUrl);
У Вас есть три опции:
escape()
не закодирует: @*/+
encodeURI()
не закодирует: ~!@#$&*()=:/,;?+'
encodeURIComponent()
не закодирует: ~!*()'
Но в Вашем случае, если Вы хотите передать URL в a GET
параметр другой страницы, необходимо использовать escape
или encodeURIComponent
, но нет encodeURI
.
Посмотрите Лучшую практику вопроса о Переполнении стека: Escape или encodeURI / encodeURIComponent для дальнейшего обсуждения.
Используйте fixedEncodeURIComponent
функция для строгого исполнения RFC 3986 :
function fixedEncodeURIComponent(str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
return '%' + c.charCodeAt(0).toString(16);
});
}
По моему скромному мнению самый изящный способ закодировать параметрические усилители запроса состоит в том, чтобы создать объект с параметрическими усилителями как
const queryParams = { param1: 'value1', param2: 'value2' }
и затем закодировать его использование:
const queryString = new URLSearchParams(queryParams).toString()
, как упомянуто в этом ответе: https://stackoverflow.com/a/53171438/7284582