Перейти к содержимому

Фотография

AJAX, Input и WebDriver на Java


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 shadow from omsk

shadow from omsk

    Новый участник

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Зиновьев Александр
  • Город:Омск

Отправлено 17 мая 2012 - 04:33

Доброго времени суток, уважаемые тестировщики!

Опишу ситуацию:

Есть форма поиска человека (по имени, фамилии, отчеству, номеру паспорта) с несколькими инпутами (текст), на форме есть кнопка Submit, при нажатии на которую выводятся результаты поиска. Если поиск ничего не нашел, опять же по дополнительной кнопке Create можно создать запись о человеке, с уже введенными ранее данными на форме поиска. Данные при открытии формы создания подгружаются через AJAX.

Собственно вопрос в том, что я в тесте сравниваю значения которые вводились при поиске, со значениями в полях на форме создания. Инпуты (опишу два, что бы не утомлять) заполняю так:

driver.findElement(
    By.id("secondName"))
    .sendKeys("петров");
driver.findElement(
    By.id("seriesNumber"))
    .sendKeys("1234 123456");

потом жму на кнопку отправки данных, проверяю что в результатах поиска данного человека нет и перехожу на форму создания. Там проверяю подставленные значения этих инпутов:

boolean result = driver.findElement(
            By.id("secondName"))
            .getAttribute("value")
            .equals("петров");
        Assert.assertTrue("тест провален, несоответствие отправленных данных из формы поиска в форму создания (имя пользователя)",result);
        
        result = driver.findElement(
            By.id("seriesNumber"))
            .getAttribute("value")
            .equals("1234 123456");
        Assert.assertTrue("тест провален, несоответствие отправленных данных из формы поиска в форму создания (серия и номер паспорта)",result);

Вопрос:

этот код в разных браузерах работает по разному. IE8, Windows Firefox работают прекрасно, а вот Windows Chrome, Linux Chrome, Linux Firefox не могут получить атрибут "value", вернее атрибут есть, но там значение не установлено. При этом, при просмотре в браузере запущенного теста значения видны (т.е. AJAX уже к этому моменту отработал). При просмотре в Firebug значение value то же не установлено, хотя и присутствует в инпуте.

Подскажите, как правильно получать значение инпута? И самое непонятное, почему в Windows работает, а в Linux нет? Ведь код один и тот же...
  • 0

#2 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 17 мая 2012 - 08:47

Доброго времени суток, уважаемые тестировщики!

Опишу ситуацию:

Есть форма поиска человека (по имени, фамилии, отчеству, номеру паспорта) с несколькими инпутами (текст), на форме есть кнопка Submit, при нажатии на которую выводятся результаты поиска. Если поиск ничего не нашел, опять же по дополнительной кнопке Create можно создать запись о человеке, с уже введенными ранее данными на форме поиска. Данные при открытии формы создания подгружаются через AJAX.

Собственно вопрос в том, что я в тесте сравниваю значения которые вводились при поиске, со значениями в полях на форме создания. Инпуты (опишу два, что бы не утомлять) заполняю так:

driver.findElement(
    By.id("secondName"))
    .sendKeys("петров");
driver.findElement(
    By.id("seriesNumber"))
    .sendKeys("1234 123456");

потом жму на кнопку отправки данных, проверяю что в результатах поиска данного человека нет и перехожу на форму создания. Там проверяю подставленные значения этих инпутов:

boolean result = driver.findElement(
            By.id("secondName"))
            .getAttribute("value")
            .equals("петров");
        Assert.assertTrue("тест провален, несоответствие отправленных данных из формы поиска в форму создания (имя пользователя)",result);
        
        result = driver.findElement(
            By.id("seriesNumber"))
            .getAttribute("value")
            .equals("1234 123456");
        Assert.assertTrue("тест провален, несоответствие отправленных данных из формы поиска в форму создания (серия и номер паспорта)",result);

Вопрос:

этот код в разных браузерах работает по разному. IE8, Windows Firefox работают прекрасно, а вот Windows Chrome, Linux Chrome, Linux Firefox не могут получить атрибут "value", вернее атрибут есть, но там значение не установлено. При этом, при просмотре в браузере запущенного теста значения видны (т.е. AJAX уже к этому моменту отработал). При просмотре в Firebug значение value то же не установлено, хотя и присутствует в инпуте.

Подскажите, как правильно получать значение инпута? И самое непонятное, почему в Windows работает, а в Linux нет? Ведь код один и тот же...


Если и в firebug value не заполнено, то дело не в selenium. Это уже как-то странно ваш сайт работает. Возможно значение появляется только после клика на поле ввода, а до этого там какой-нибудь div или span c требуемым текстом
  • 0

#3 Rara

Rara

    Активный участник

  • Members
  • PipPip
  • 83 сообщений
  • ФИО:Кондрашов Юрий Алексеевич
  • Город:Минск, Беларусь


Отправлено 17 мая 2012 - 09:38

А в Windows Firefox в Firebug значение value заполнено или нет?
  • 0
Я бы переписал жизнь, но Бог не дает мне исходники

#4 shadow from omsk

shadow from omsk

    Новый участник

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Зиновьев Александр
  • Город:Омск

Отправлено 18 мая 2012 - 06:40

2 Rara: тоже не заполенено, вот код инпута:

<input id="secondName" class="field secondName ui-input-text ui-body-c ui-corner-all ui-shadow-inset field-patterned field-required" type="text" spellcheck="false" autocorrect="off" autocomplete="off" value="" name="secondName" clear-value="" data-field-pattern="^[a-zA-ZА-Яа-я\-]*$">

  • 0

#5 shadow from omsk

shadow from omsk

    Новый участник

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Зиновьев Александр
  • Город:Омск

Отправлено 06 июня 2012 - 08:32

пришел к выводу, что это косяк плагина, подставляющего значения с формы после нажатия на submit. После замены плагина на другой, значения получаются без проблем и параметр value не пустой. Проблема решена.
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных