PHPUnit+Selenium - нестабильный результат заполнения форм

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
yan
Сообщения: 942
Зарегистрирован: 2011.03.23, 09:28
Откуда: Уфа

PHPUnit+Selenium - нестабильный результат заполнения форм

Сообщение yan »

Здравствуйте господа девелоперы, может кто подскажет решение проблемы - при заполнении форм в ходе тестирования PHPUnit5.5+Selenium2 (Firefox), чекбоксы чекаются нестабильно - то все отметятся, то один-два окажется не отмеченным, подозреваю, что может быть связано с запуском валидации формы по ajax, но как тестировать при таком поведении непонятно :?

Еще может кто-то подскажет какие нюансы при использовании PHPUnit+Selenium в выборе значения в select - на одной форме нормально устанавливается значение просто присвоением

Код: Выделить всё

$this->byId('selectId')->value(100);
а на другой форме не помогают даже конструкции вида

Код: Выделить всё

$this->select($this->byId('selectId'))->selectOptionByValue('value');
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: PHPUnit+Selenium - нестабильный результат заполнения форм

Сообщение ElisDN »

yan писал(а):подозреваю, что может быть связано с запуском валидации формы по ajax, но как тестировать при таком поведении непонятно
Расставьте паузы.
yan
Сообщения: 942
Зарегистрирован: 2011.03.23, 09:28
Откуда: Уфа

Re: PHPUnit+Selenium - нестабильный результат заполнения форм

Сообщение yan »

ElisDN писал(а):
yan писал(а):подозреваю, что может быть связано с запуском валидации формы по ajax, но как тестировать при таком поведении непонятно
Расставьте паузы.
делал конечно - даже пауза в 4 сек между кликами не всегда дает полное заполнение, но 4 сек это уже как-то многовато
yan
Сообщения: 942
Зарегистрирован: 2011.03.23, 09:28
Откуда: Уфа

Re: PHPUnit+Selenium - нестабильный результат заполнения форм

Сообщение yan »

пишу для тех кто столкнется с подобным в будущем - после длительной безуспешной борьбы пришел к выводу, что в некоторых особо тяжелых случаях ради сохранения собственного времени и здоровья можно отойти от идеологии полной имитации действий пользователя и применить прямое выполнение JS, например используя старый проверенный jQuery :ugeek:, так результат получается куда более гарантированный и стабильный.

кликаем

Код: Выделить всё

$this->execute(['script' => '$("'.$selector.'").click()', 'args' => []]);
 
устанавливаем значение и возвращаем результат для проверки

Код: Выделить всё

$this->execute(['script' => 'return $("'.$selector.'").val('.$value.').val()', 'args' => []]);
 
Последний раз редактировалось yan 2016.09.17, 00:07, всего редактировалось 2 раза.
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: PHPUnit+Selenium - нестабильный результат заполнения форм

Сообщение rugabarbo »

А как же разобраться в деталях? Всё продебажить? Познать дзен тестирования и поделиться с другими?
yan
Сообщения: 942
Зарегистрирован: 2011.03.23, 09:28
Откуда: Уфа

Re: PHPUnit+Selenium - нестабильный результат заполнения форм

Сообщение yan »

rugabarbo писал(а):А как же разобраться в деталях? Всё продебажить? Познать дзен тестирования и поделиться с другими?
нет столько времени и терпения, вопросов полно возникает - на сложных страницах селениум тупо неверно прокручивает страницу к элементу, элемент не виден и на нем не кликается, некоторые селекты вроде бы ничем не отличающиеся от других, почему-то принципиально не меняют значения и т.д. и т.п.
Ответить