среда, 10 августа 2011 г.

Selenium и .РФ

Возникла необходимость написать Selenium-тесты для сайта, расположенного на интернационализированном домене.

IDN (англ. Internationalized Domain Names — Интернационализованные Доменные Имена) — это доменные имена, которые содержат символы национальных алфавитов, например, президент.рф , говорит Wikipedia.

При запуске selenium-server.jar и попытке в качестве базового url указать целевой сайт в формате IDN, происходила ошибка


HTTP ERROR: 400

Could not proxy http://selenium-server/core/TestRunner.html?auto=true&multiWindow=true&defaultLogLevel=info&baseUrl=http%3A%2F%2F%3F%3F%3F%3F%3F%3F%3F%3F%3F.%3F%3F&resultsUrl=../postResults&test=http%3A%2F%2F%2Fselenium-server%2Ftests%2Ftestsuite.html
java.net.UnknownHostException: selenium-server
RequestURI=/core/TestRunner.html


Это связано с тем, что Selenium не смог перевести IDN-формат написания в Punycode — формат, разработанный для однозначного преобразования доменных имен в последовательность допустимых ASCII-символов.
А это значит мы просто сами должны это сделать. Сконвертировать русское название домена в пуникод можно, например, тут или тут.
Теперь, вместо желаемого президент.рф мы указываем адрес xn--d1abbgf6aiiy.xn--p1ai, и радуемся проходящим тестам :)

1 комментарий:

  1. либо использовать IP адреса, их еще пока никто не отменял.

    ОтветитьУдалить