Я использую Codeception с PhantomJS и WebDriver, Selenium Server Standalone.
Я определил локаторы с идентификаторами, классами и работает отлично, но после того, как я добавлю параметр window_size (даже если он ‘maximize’ или 1024×768) в accept.suite.yml, тест не пройдёт.
Обходной путь: Вместо простого идентификатора или локатора класса, я должен скопировать и вставить уникальный локатор, используя опцию Inspect Element from Firefox. Это не было бы большой проблемой, но это не читабельно, и это слишком много.
Отображаемая ошибка:
[Facebook \ WebDriver \ Exception \ TimeoutException]Сценарий Шаги:
1 Codeception \ Module \ WebDriver-> waitForElementVisible
2 /home/laurentiu/PhpstormProjects/codeception/tests/_support/_generated/AcceptanceTesterActions.php:2109
3 /home/laurentiu/PhpstormProjects/codeception/tests/acceptance/dentstoreCest.php:32
4 dentstoreCest-> TC_Login_2
5 /home/laurentiu/PhpstormProjects/codeception/codecept.phar:7
Мое принятие.suite.yml является:
имя_класса: AcceptanceTester
модули:
включено:
- WebDriver
- \Helper\Acceptance
конфигурации:
WebDriver:
browser: phantomjs
url: "http://example.org"window_size: 'maximize'
Тип приемочного испытания — CEST:
публичная функция TC_Login_2 (AcceptanceTester $ I)
{
$I->wantTo('login filling only the email field and the email adress is not registered');
$I->amOnPage('/');
$I->moveMouseOver(".login", 'Autentificare');
$I->waitForElementVisible("#email");
$I->fillField("#email", '[email protected]');
$I->click('#SubmitLogin');
$I->see('Parola este obligatorie', '.alert.alert-danger'); }
Я заметил, что эта проблема возникает только при использовании moveMouseOver и waitForElementVisible.
Спасибо!
Задача ещё не решена.
Других решений пока нет …