Всем привет. Есть небольшая проблема с прохождением тестов. Фреймворк скорее всего не так важен, но cucumber + capybara.
Есть моменты, когда я проверяю введенные в те или иные поля значения. Заметил, что с полями типа textarea есть некоторые проблемы в считывании данных.
Обычно там текст достаточно большой. Проблема заключается в том, что то ли не успевает считывать данные процедура теста, то ли эти данные не успевают там полностью проявиться (обычно это возникает в ходе открытия страницы, перегрузки, появление попапов). Ставлю задержки до вызова процедуры сравнения значения поля с эталоном, но задержка не всегда помогает, стараюсь ставить минимальную задержку, но порой даже 5 секунд не хватает. Возможно, кто-то сталкивался с подобными явлениями и понимает причину?
Код процедуры чтения такой
Given(/^Value in field with id "(.*?)" must be equal "(.*?)"$/) do |field_id, res|
tagName = page.evaluate_script("$('##{field_id}')[0].nodeName")
case tagName
when 'INPUT'
result = find("//input[@id='#{field_id}']", :visible => :all).value
when 'TEXTAREA'
result = find("//textarea[@id='#{field_id}']", :visible => :all).value
when 'SELECT'
result = page.evaluate_script("$('##{field_id} option:selected').text().trim()")
else
result = tagName
end
end