Codeceptjs selectors:如何select "email" 输入字段?

Codeceptjs selectors: How to select the "email" input field?

我真的需要语法方面的帮助。

我有输入字段:

<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#fillfield

I.fillField('email', 'hello@world.com');

应该按名称定位元素。 但测试失败并显示错误消息: "Field email not found by name|text|CSS|XPath"

是语法错误还是网络驱动程序有问题? 例如。 之前的command/step是:

I.amOnPage(some url here); 

它正在运行,所以我认为 webdriver 应该没问题。

您使用的语法是正确的。定位元素可能有问题。

尝试通过以下方式调试问题,

1) 在 "I.amOnPage" 和 "I.fillField"
之间添加等待 --> I.wait(2) 秒 2)尝试点击元素'email'然后fillFieldI.click('//input[@name='email']');I.fillField('email') ;
3) 尝试为 fillField 传递 xpath,可能有另一个元素被禁用。例如:I.fillField('//input[@ng-model="authForm.email"][@name='email']')

另外请确保该元素不在 iframe 中,如果是则意味着您需要先切换到框架然后再执行操作