“Sorry, I couldn`t submit form “#form”, {“fields[contact_id]”:{”$id":“53a2e5095f80600012000012”}}:
Codeception\Exception\TestRuntime: Form with selector: “#form” was not found on given page.
Ок, судя по ошибке это достаточно старая версия Codeception. Сейчас используется ’Codeception\Exception\ElementNotFound’. Может конечно не в этом суть… Но всё равно. Скажите версию и скиньте конфиг acceptance.suite.yml
Решила обновить codeception к версии 2.0.1, скачала новый codecept.phar. Ввела php codecept.phar self-update и php composer.phar update codeception/codeception. А также php codecept.phar bootstrap и получила "Project already initialized at '.'
Но, как написано в Codeception Changelog переименований:
renamed _logs dir to _output by default
renamed _helpers dir to _support by default
Значит так. Вот что происходит. Модули PhpBrowser и Selenium2 имеют одинаковые названия методов, но работают по разному, PhpBrowser запускает тесты эмулируя работу браузера (без яваскрипта), а Selenium2 пускает Селениум. В чем беда: на каждый тест запускается 2 сессии. И всё может тоже не так и плохо, но весь ваш тест выполняется в Selenium2 не затрагивая PhpBrowser, кроме метода submitForm, который в Selenium2 отсутствует. Итого, получается, что submitForm работает не завися от Selenium2 и действительно не видит элемента на странице.
Итого, смотрите, что надо сделать.
Убрать PhpBrowser из списка модулей. Если вы работаете с Selenium2 он вам вообще не нужен. Начиная с версии 2.1 Codeception будет ругаться матом, если вы будете добавлять модули с одинаковыми API (во избежание подобных ситуаций)
Вместо модуля Selenium2 (его уже нет в версии 2.0) использовать WebDriver. Он работает на 90% так же как старый Selenium2, только в нем уже есть метод submitForm
Для миграции к 2.0 ничего делать не надо. Нужно только выполнить codecept build, а дальше одно из двух: оно само заведется, или не заведется Если не заведется - кидайте ошибку, постараюсь помочь. Но по идее для обноавления ничего не нужно - папки и классы переименовывать не надо, тесты править тоже, всё должно завестись как есть.
Building Actor classes for suites: acceptance, functional, unit
[Codeception\Exception\Configuration]
AcceptanceHelper could not be found and loaded
build [-c|--config[="..."]]
После выполнения build добавились новые методы в WebGuy, но также выскочило сообщение, что
[Codeception\Exception\Configuration]
Selenium could not be found and loaded.
Хотя не указывала его в acceptance.suite.yml.
Если запускаю тесты без selenium.bat ( в котором у меня java -jar selenium-server-standalone-2.40.0.jar), то получаю сообщение:
[WebDriverCulrException]
Curl error thrown for http POST to http://127.0.0.1:4444/wd/hub/session with params: {"desiredCapabilities":{"unexpectedAlertBehaviour":"accept","browserName":"firefox"}
Failed connect to 127.0.0.1:4444; No error
Если же запускаю selenium.bat, то тест загружается, но ОЧЕНЬ медленно.
И что касается selectize, из-за чего все началось то
"Sorry, I couldn't submit form.
ErrorException: Object of class RemoteWebElement could to be converted to string".