Опишу ситуацию:
Есть форма поиска человека (по имени, фамилии, отчеству, номеру паспорта) с несколькими инпутами (текст), на форме есть кнопка 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 нет? Ведь код один и тот же...