Protractor是为AngularJS和Angular应用程序开发的端到端测试框架。它基本上是针对在真实浏览器中运行的应用程序运行测试,该应用程序像真实用户一样与之交互。在下面的示例中,我们将获取元素的x和y坐标,并检查其是否符合预期。
先决条件:Protractor的安装和设置
方法:
- 我们将创建一个基本的测试程序,在该程序中,我们将检查元素的x和y坐标是否符合预期。
- 所有Protractor测试都将包含一个包含配置的文件,该文件将是启动测试的初始文件。
- 让我们使用conf.js名称创建此文件。
示例:文件名:conf.js
Javascript
exports.config = {
// Capabilities values for
// webdriver instance
capabilities: {
'browserName': 'chrome'
},
// Framework value
framework: 'jasmine',
// The Spec patterns are relative to the
// current working directory when
// protractor is called.
specs: ['test.js'],
// Options which are passed to our
// framework ie. Jasmine.
jasmineNodeOpts: {
defaultTimeoutInterval: 30000
},
// File URL
baseUrl: 'file://' + __dirname + '/',
onPrepare: function () {
browser.resetUrl = 'file://';
}
};
HTML
Inner text
Javascript
describe('Protractor Demo App', function () {
it('should have a title', function () {
// Disabling waiting for angular
browser.waitForAngularEnabled(false)
// Get our html file for testing
browser.get('test.html');
// Test if the element have required coordinates
let foo = element(by.id('foo'));
expect(foo.getLocation()).toEqual(
jasmine.objectContaining({
x: 15,
y: 20
}));
});
});
现在,让我们创建一个名为test.html的HTML文件,其中将包含要测试的元素。
文件名:test.html
的HTML
Inner text
现在,让我们创建测试文件test.js。在此文件中,我们将访问HTML文件,然后获取x和y坐标,并检查其是否与HTML文件中的设置相同。浏览器是Protractor创建的全局变量。
Jasmine框架提供了describe()函数和it()函数,其中describe是对测试的描述,而它是测试的步骤。
档名:test.js
Java脚本
describe('Protractor Demo App', function () {
it('should have a title', function () {
// Disabling waiting for angular
browser.waitForAngularEnabled(false)
// Get our html file for testing
browser.get('test.html');
// Test if the element have required coordinates
let foo = element(by.id('foo'));
expect(foo.getLocation()).toEqual(
jasmine.objectContaining({
x: 15,
y: 20
}));
});
});
使用以下命令运行conf.js文件:
protractor conf.js
输出: