Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FillField Функциональные тесты #8

Closed
svsool opened this issue Feb 27, 2012 · 10 comments
Closed

FillField Функциональные тесты #8

svsool opened this issue Feb 27, 2012 · 10 comments

Comments

@svsool
Copy link
Contributor

svsool commented Feb 27, 2012

данный код
https://github.com/Codeception/Codeception/blob/master/src/Codeception/Util/Framework.php#L190

не работает с формой в которой есть кнопка вида,
<!!!!button class="float-right" type="submit">Войти, соотвественно не отрабатывается код

$form->children()->addHtmlContent(''); // for forms with no submits...
$form = $form->filter('input[type=submit]')->form();

почему то не добавляется к children() и соотвестенно пишет: "The current node list is empty.", потому что node $form->filter('input[type=submit]') не находится, пока не надумал как поправить

Если заменить код на такой, то тест начинает работать
$form = $form->filter('button[type=submit]')->form();
Страница которая тестируется http://pastebin.com/eufPcryv

$I = new TestGuy($scenario);
$I->wantTo('протестировать логин в админ панель');
$I->amOnPage('/admin/login');
$I->fillField('login','svsool');
$I->click('submit');
$I->see('Добро пожаловать');

@DavertMik
Copy link
Member

Ок, мысль понял, нужно добавить поддержку

<button type="submit"></button>

А то пока у меня форма только через input[type=submit] отсылается.

@svsool
Copy link
Contributor Author

svsool commented Feb 28, 2012

<? $form->children()->addHtmlContent('<input type="submit" />'); ?>

дело в том что предыдущий код добавляет нод html < body < input к children формы

<DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<input type="submit" />
</body>
</html>

и метод $form->filter('input[type=submit]')->form(); , не хочет искать html input[type=submit] в свежедобавленном ноде, сами проверьте, уберите все button и input со страница и попробуй сделать select, у меня выходит сообщение node list is empty, дело в том что у меня при селекте автосабмитится форма с помощью jquery on select (function () {$(#form).submit();}, и никакие input не нажимаются

просто ради интереса добавьте перед $form->filter('input[type=submit]')->form();

$form->children();
foreach ($form as $element)
$element->nodeName;

увидите что к children добавляется html node, в котором domcrawler кнопку не находит почему-то.

@DavertMik
Copy link
Member

Ок. Спасибо. Гляну

@DavertMik
Copy link
Member

починил. Завтра будет в новой версии

@artyfarty
Copy link
Contributor

Осталась одна проблема, судя по всему растущая корнями из минк-гоуэтте. Даже не знаю, можно ли её решить внутри кодсепшена, или идти бить челом разрабам минка (написал им тикет). При click()е по button type submit в форме не передается name-value самого нажатого баттона

@DavertMik
Copy link
Member

Смотри, в гоутте недавно поменяли движок. Отказались от зенда. Попробуй обновить его с композером. Может он работает лучше.

@artyfarty
Copy link
Contributor

Я вроде бы через пир обновил кодсепшен и сделал codecept install, проблема оставалась. С композером распинаться пока неохота.

@DavertMik
Copy link
Member

Не, в пир пакет это ещё не ушло. Так что там вообще веселуха, что версия минка композера и версия для пира используют разные движки. Да и с композером я позавчера весь вечер воевал, ибо пакет для гоутта был неправильно у них залит.
Пока только это могу посоветовать. Попробовать композер. Там не так сложно.
По той же причине я не могу PHPBrowser обновлять, ибо сейчас по сути он в зависимости от версии юзает разные движки.

@artyfarty
Copy link
Contributor

У меня на локальном сейчас установленный пиром кодсепшен симлинком подменен на гит репозиторий, так что там точно должен быть актуальный кот кодсепшена.

А так, это не единственная чудность гоуэттэ, например он у нас тут не хочет радиобатон нажимать, уверяя что мол это не радиобатон вовсе. Я не оформлял пока это потому что не уверен что это общая проблема. В итоге сегодня селениум2 подцепил, уж больно гоуэттэ ненадежен.

@DavertMik
Copy link
Member

Может в радиобаттоне закрывающего тега нет? />
Сори, ничем больше помочь не могу. Ну может только если вопросы по моему коду будут.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants