如何使用Protractor / Selenium设置可用于测试套件的常用功能?
How can I set up common functions that are available for my test suites with Protractor / Selenium?
我正在做一个AngularJS量角器测试套件。我有一个像这样的配置文件:
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
baseUrl: 'http://127.0.0.1:17315/',
capabilities: {
browserName: 'chrome',
'chromeOptions': {
args: ['--test-type']
}
},
suites: {
login: ['LoginPage/login.js'],
homePage: ['Homepage/homepage.js',
'Homepage/city_page.js',
'Homepage/admin_page.js'],
adminPage: ['AdminPage/exam.js',
'AdminPage/location.js'
..
在这些。js文件中,我使用了一些我想要的函数在我所有的文件中共享。例如:
describe('xxx', function () {
it('xxx', function () {
commonFunction(123);
});
我想把这些常见的函数在自己的文件,但我不知道如何做到这一点,这样我就可以使他们从其他javascript文件访问。我想我需要的是一种我认为不存在的"输入"。谁能给我一些建议,在哪里我可以把这些常见的功能,以及如何从每个*.js文件在测试套件访问它们?
为了重用代码,我使用了页面对象模式。我把page对象放在一个单独的文件和模块中。
例如,pages.js
文件包含一些页面对象。
'use strict';
(function() {
var Application = function() {
var app = this;
browser.get('http://localhost:9003/');
app.login = function() {
element(by.buttonText('login')).click();
return new LoginPage();
};
var LoginPage = function() {
var loginPage = this;
loginPage.withCredentials = function(login, password) {
element(by.css('.loginField')).Keys(login);
element(by.css('.passwordField')).Keys(password);
element(by.buttonText('login')).click();
return new WelcomePage();
};
};
var WelcomePage = function() {
var welcomePage = this;
welcomePage.getGreetings = function() {
return element(by.css('.greetings')).getText();
};
};
};
module.exports = function() {
return new Application();
};
}());
,我在使用require
的验收测试中导入它们:
'use strict';
var Application = require('./pages.js');
describe('The application', function() {
it('should let you log into the application', function() {
var application = new Application();
var welcomePage = application.login().withCredentials('Jean', '!sz3sk,dz');
expect(welcomePage.getGreetings()).toEqual('Welcome Jean');
});
});
相关文章:
- 将范围添加到角度种子默认视图控制器时,测试套件现在失败
- PhantomJS在运行测试套件时崩溃
- Mocha测试套件因未捕获的异常而暂停
- 创建一个假DOM以在JavaScript测试套件中进行测试
- 在MochaJS测试套件中使用--globals变量
- 用于实现 Python 的测试套件
- 控制器方法在 AngularJs 中使用 Karma 调用 Jasmine 单元测试套件
- Mocha测试套件在尝试连接到API时出错
- Jasmine套件未在测试运行输出中正确打印
- 无法在测试套件中正确使用自定义javascript文件
- 这个在JavaScript中构建的异步测试套件将如何终止
- 在每个套件之前运行摩卡设置,而不是在每个测试之前运行
- 什么是用于基准测试JavaScript引擎的最佳独立测试套件
- nightwatch.js在测试套件结束时暂停
- 在实习中指定测试套件的最佳方法是什么?
- 当promise.then中的expect失败时,Protractor / cucumber测试套件停止运行
- 在指令和单元测试套件中使用原生javascript插件
- 混淆了嵌套测试套件和规范的执行顺序
- 在selenium webdriver中创建多个测试套件
- 如何使用Protractor / Selenium设置可用于测试套件的常用功能?