【发布时间】:2015-08-07 23:23:06
【问题描述】:
我有一个向网站添加用户的模式。首先需要添加一个电子邮件地址,然后检查服务器以查看电子邮件是否已在用户列表中。接下来需要添加名字、姓氏等。问题是直到我在输入框外单击或单击两次标签后,才针对服务器检查电子邮件。在完成此检查之前,名字、姓氏等都是只读的,并且元素不可见,因此我无法进一步填写表格。
这是我尝试过的代码:
element.all(by.css("input[type$='text']")).first().sendKeys(protractor.Key.TAB);
browser.driver.sleep(3000);
//below is the first name element
element(by.xpath("(//input[@type='text'])[2]")).sendKeys("a First Name");
element.all(by.css("input[type$='text']")).first().sendKeys('anemailaddy@newmarketinc.com', protractor.Key.TAB); //.browser.actions().sendKeys(protractor.Key.TAB).perform();
以上注释掉的行是不同方式的尝试。我也试过这个:
最后一个问题,电子邮件地址是您在上面看到的元素,名字、姓氏等都在一个数组中。要访问名字栏,是否将 input[type$='text']:nth-of-type(2) 作为列表中的第二个?
页面 HTML:
<div class="dialog-overlay" ng-class="{visible: usersCtrl.editPermissionsVisible}">
<div class="edit-user-dialog">
<div class="dialog-header">
<div class="dg-title-text">Edit a User's Permissions</div>
<span class="icon icon-close" ng-click="usersCtrl.hideEditPermissions()"></span>
</div>
<div class="dialog-content">
<div class="dg-row">
<div>
<span class="dg-field-label">Email:</span>
<span class="dg-field-error " ng-bind="text = usersCtrl.invalidEmailMessage"></span>
</div>
<input type="text" class="dg-field-input" ng-model="usersCtrl.user.email" ng-blur="usersCtrl.onChangeEmail()" ng-disabled="!usersCtrl.addUserVisible" />
</div>
<div class="dg-row">
<div class="dg-cell col-2">
<span class="dg-field-label">First Name:</span>
<input type="text" class="dg-field-input" ng-model="usersCtrl.user.firstName" ng-disabled="usersCtrl.editPermissionsVisible || usersCtrl.searchNotStartOrSuccess" />
</div>
<div class="dg-cell col-2">
<span class="dg-field-label">Last Name:</span>
<input type="text" class="dg-field-input" ng-model="usersCtrl.user.lastName" ng-disabled="usersCtrl.editPermissionsVisible || usersCtrl.searchNotStartOrSuccess" />
</div>
</div>
<div class="dg-row">
<span class="dg-field-label">Title:</span>
<input type="text" class="dg-field-input" ng-model="usersCtrl.user.title" ng-disabled="usersCtrl.editPermissionsVisible || usersCtrl.searchNotStartOrSuccess" />
</div>
<div class="dg-row">
<div class="checkbox-control" ng-click="usersCtrl.permissions.toggleContentManagement()">
<span class="checkbox-mark svg-icon" ng-class="{'icon-check-on': usersCtrl.permissions.allowContentManagement}"></span>
<span class="checkbox-text bold">Allow Access to iPlan Content Management System</span>
</div>
</div>
<div class="dg-row content-management">
<div class="checkbox-column" ng-repeat="permission in usersCtrl.permissions.contentManagement" ng-if="permission.canIssue">
<div class="checkbox-control" ng-click="!usersCtrl.isDisabledPermission(permission) && usersCtrl.togglePermission(permission)" ng-class="{disabled: usersCtrl.isDisabledPermission(permission)}">
<span class="checkbox-mark svg-icon" ng-class="{'icon-check-on': permission.value}"></span>
<span class="checkbox-text">{{permission.displayName}}</span>
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="dg-row ">
<div class="checkbox-control" ng-click="usersCtrl.togglePermission(usersCtrl.permissions.manageUsers)">
<span class="checkbox-mark svg-icon" ng-class="{'icon-check-on': usersCtrl.permissions.manageUsers.value}"></span>
<span class="checkbox-text bold">{{usersCtrl.permissions.manageUsers.displayName}}</span>
</div>
</div>
【问题讨论】:
标签: javascript angularjs selenium selenium-webdriver protractor