Успешный клик, но timeout при попытке дождаться stringContentsOfInputStream

 

День добрый.
 
имеются 2 машины: на одной проект на яве в эклипс, на другой селениум сервер (первой версии), на котором происходит тестирование вебприложения. В целом все нормально работает, но почему-то не вполне корректно происходит клик по ссылке, которая в html виде выглядит как
 
<td class="MsgBarMsg" nowrap="nowrap">
<span class="StatusBarLetr">Information:</span>The Containers have been scheduled for creation. 
(<a onmouseover="callTip('get_op_details',event)" onmouseout="callTip()" href="javascript:open_details('https://bla_bla');">Details</a>)
</td>
 
Клик происходит следующим образом:
 
        setLocator( "css=a:contains(\"^Details$\")" );
...
commandProcessor.doCommand("click", new String[] {locator,} );
 
если посмотреть дебаггером при пошаговом проходе, то в doCommand вызывается executeCommandOnServlet("cmd=click&1=css%3Da%3Acontains%28%22%5EDetails%24%22%29"), который в свою очередь вызывает getCommandResponseAsString("cmd=click&1=css%3Da%3Acontains%28%22%5EDetails%24%22%29"), который выглядит следующим образом
 
    protected String getCommandResponseAsString(String command) throws IOException {
        String responseString = null;
        int responsecode = HttpURLConnection.HTTP_MOVED_PERM;
        HttpURLConnection uc = null;
        Writer wr = null;
        Reader rdr = null;
        while (responsecode == HttpURLConnection.HTTP_MOVED_PERM) {
            URL result = new URL(pathToServlet); 
            String body = buildCommandBody(command);
            try {
                uc = getHttpUrlConnection(result);
                uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
                uc.setInstanceFollowRedirects(false);
                uc.setDoOutput(true);
                wr = getOutputStreamWriter(uc);;
                wr.write(body);
                wr.flush();
                responsecode = getResponseCode(uc); >>> responsecode равен HttpURLConnection.HTTP_OK, клик успешно совершается, на странице открывается popup окно
                if (responsecode == HttpURLConnection.HTTP_MOVED_PERM) {
                    pathToServlet = uc.getRequestProperty("Location");
                } else if (responsecode != HttpURLConnection.HTTP_OK) {
                    throwAssertionFailureExceptionOrError(uc.getResponseMessage());
                } else {
                    rdr = getInputStreamReader(uc);
                    responseString = stringContentsOfInputStream(rdr); >>>> responseString = "Timed out after 50000ms", из-за этого commandProcessor.doCommand инициирует exeption и клик засчитывается как неуспешный
                }
            } finally {
              closeResources(uc, wr, rdr);
            }
        }
        return responseString;
    }
 
Вопрос, почему при успешном клике не удается считать responseString и как это можно обойти?

 

ваш последний вопрос, как-то запутал

давайте определимся с вашей проблемой, потому что я ее не до конца понял

вы просто не можете нажать на ссылку?

Спасибо. Оказывается первая версия селениум сервера поддерживает FireFox не выше 3.6, но в нем проблемы с тестируемым вебприложением. Поэтому пришлось перейти на селениум сервер 2 + FF11.х Проблемные клики, описанные выше, совершаются без проблем. 

ну вот видите, новая версия selenium Вам пригодилась

какие ощущения после selenium RC?

Ощущения положительные, но никак не сложится общей методики определения имен локаторов, в частности в случае сложных таблиц с чекбоксами. Еще немного помучаюсь и буду сюда писать о наболевшем))

буду благодарен если подскажите ресурс для начинающего как подбирать локаторы и описывать их на java

я думаю эта ссылка Вам поможет

http://automated-testing.info/trainings/video-kak-pisat-lokatory-dlya-selenium-webdriver/report