使用量角器按类名定位按钮
Locating a button by className with Protractor
如果这是一个刚开始进行 Web 自动化测试的新手问题,我深表歉意。
我想测试登录屏幕页面。查找名称和密码文本字段很容易(仅使用 by.model),但是我在使用脚本定位登录按钮时遇到问题。
我四处搜索,我应该能够使用 element(by.css(.className)) 按类名找到一个元素,但是这不起作用,我我总是得到 NoSuchElementError: No element found using locator: By.cssSelector(".btn btn-lg btn-primary btn-block")
.
知道我做错了什么吗?
提前致谢,
登录按钮HTML:
<button class="btn btn-lg btn-primary btn-block" type="submit" ng-disabled="loading">login</button>
我的代码:
describe('Test login', function() {
var username = element(by.model('formData.email'));
var password = element(by.model('formData.password'));
var loginBtn = element(by.css('.btn btn-lg btn-primary btn-block'));
beforeEach(function() {
browser.get('some site'); //hidden on purpose
});
it('should have a title', function() {
username.sendKeys(1);
password.sendKeys(2);
loginBtn.click();
});
});
如果您要检查多个 类,请用点分隔它们:
by.css('.btn.btn-lg.btn-primary.btn-block')
不过,我会通过文本找到按钮 - 看起来更可靠和可读:
by.xpath('//button[. = "login"]')
此外,考虑为按钮分配一个 id
(如果它在您的控制之下)属性以简化测试过程:
<button id="submitButton" class="btn btn-lg btn-primary btn-block" type="submit" ng-disabled="loading">login</button>
那么,就很简单了:
by.id('submitButton')
您也可以仅使用一个 class 来查找定位器
by.css('.btn-primary')
按class 姓名
by.className('btn-primary')
如果这是一个刚开始进行 Web 自动化测试的新手问题,我深表歉意。
我想测试登录屏幕页面。查找名称和密码文本字段很容易(仅使用 by.model),但是我在使用脚本定位登录按钮时遇到问题。
我四处搜索,我应该能够使用 element(by.css(.className)) 按类名找到一个元素,但是这不起作用,我我总是得到 NoSuchElementError: No element found using locator: By.cssSelector(".btn btn-lg btn-primary btn-block")
.
知道我做错了什么吗?
提前致谢,
登录按钮HTML:
<button class="btn btn-lg btn-primary btn-block" type="submit" ng-disabled="loading">login</button>
我的代码:
describe('Test login', function() {
var username = element(by.model('formData.email'));
var password = element(by.model('formData.password'));
var loginBtn = element(by.css('.btn btn-lg btn-primary btn-block'));
beforeEach(function() {
browser.get('some site'); //hidden on purpose
});
it('should have a title', function() {
username.sendKeys(1);
password.sendKeys(2);
loginBtn.click();
});
});
如果您要检查多个 类,请用点分隔它们:
by.css('.btn.btn-lg.btn-primary.btn-block')
不过,我会通过文本找到按钮 - 看起来更可靠和可读:
by.xpath('//button[. = "login"]')
此外,考虑为按钮分配一个 id
(如果它在您的控制之下)属性以简化测试过程:
<button id="submitButton" class="btn btn-lg btn-primary btn-block" type="submit" ng-disabled="loading">login</button>
那么,就很简单了:
by.id('submitButton')
您也可以仅使用一个 class 来查找定位器
by.css('.btn-primary')
按class 姓名
by.className('btn-primary')