2014-01-07 4 views
1

я экспериментирую с селеном WebDriver, и хотел бы использовать что-то похожее на код ниже:селена ссылка WebDriver вызов с особым характером

WebDriver driver = new FirefoxDriver(); 
driver.get("http:\\awebsite.com?that%20has%20x"); 

, к сожалению, когда я выполнить код, в появившемся браузере:

http:\\awebsite.com?that has x 

что мне нужно сделать так, чтобы% 20 не заменялось «пробелом»?

Спасибо заранее!

+0

Многие браузеры отображают '% 20' как пробел, но на самом деле используют кодированную версию; вы уверены, что здесь не так? Что происходит, когда вы копируете URL-адрес из адресной строки? – blalasaadri

+0

Вы можете избежать '%' с '% 25'. Это означало бы, что это будет выглядеть как '% 2520' ... но я не думаю, что это то, что вы хотите. То, что вы описываете, - это стандартное поведение браузера. –

+0

Спасибо вам за быстрый ответ! % 25 отлично работает! благодаря – user1679802

ответ

0

Хорошим решением является использование класса URLEncoder java.

Для примера:

String q = "that%20has%20x"; 
String url = "http://google.com?q=" + URLEncoder.encode(q, "UTF-8"); 
driver.get(url); 

В адресной строке браузера, вы увидите:

https://www.google.com/?q=that%2520has%2520x 

Когда адрес закодирован, то '%' становится '% 25'.

Here's a great Encoding Reference on www.w3schools.com

Это имеет тот же результат, как с помощью предложения @ Натан Меррилл.

Смежные вопросы