1

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

我有输入字段:

<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');

应该按名称定位元素。但测试失败并显示错误消息:“字段电子邮件未按名称|文本|CSS|XPath”

是语法错误还是 webdriver 有问题?例如,上一个命令/步骤是:

I.amOnPage(some url here); 

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

4

1 回答 1

3

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

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

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

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

于 2017-06-27T06:14:04.240 回答