Селекторы Codeceptjs: Как выбрать поле ввода "email"?
Мне действительно нужна помощь с синтаксисом.
У меня есть поле ввода:
<input class="email__field ng-pristine ng-empty ng-valid-email ng-invalid ng-invalid-required ng-touched" name="email" ng-model="authForm.email" ng-keypress="keypress($event);" ng-disabled="false" focused="true" required="" style="" type="email">
Согласно документации: http://devdocs.io/codeceptjs/helpers/seleniumwebdriver/index
I.fillField('email', 'hello@world.com');
должен найти элемент по имени. Но тест завершается неудачно с сообщением об ошибке: "Адрес электронной почты не найден по имени | текст |CSS|XPath"
Синтаксис неправильный или может быть что-то не так с веб-драйвером? Например, предыдущая команда / шаг:
I.amOnPage(some url here);
и это работает, поэтому я думаю, что веб-драйвер должен быть в порядке.
1 ответ
Синтаксис, который вы использовали, был правильным. Расположение элемента может иметь некоторые проблемы.
Попробуйте отладить проблему следующим образом:
1) Добавьте ожидание -> I.wait(2) секунды между "I.amOnPage" и "I.fillField"
2) Попробуйте щелкнуть элемент "электронная почта" и затем fillField I.click ('// input [@ name =' email ']'); I.fillField ('email');
3) Попробуйте передать xpath для fillField, возможно, там был другой элемент, который отключен. например: I.fillField('//input[@ng-model="authForm.email"][@name='email']')
А также, пожалуйста, убедитесь, что элемент не был внутри iframe, если это означает, что вам нужно сначала переключиться на фрейм, а затем выполнить действия