gpt4 book ai didi

javascript - 如何使用 Protractor/Selenium 设置可用于我的测试套件的常用函数?

转载 作者:可可西里 更新时间:2023-11-01 02:56:32 25 4
gpt4 key购买 nike

我正在研究 AngularJS Protractor 测试套件。我有一个如下所示的 conf 文件:

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 object pattern .我将页面对象放在一个单独的文件和一个 module 中。 .

例如,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');
});
});

关于javascript - 如何使用 Protractor/Selenium 设置可用于我的测试套件的常用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24232511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com