wdio-ui5-service
Version:
WebdriverIO plugin for testing UI5 browser-based apps
37 lines • 1.82 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Logger_js_1 = require("../Logger.js");
const Authenticator_js_1 = __importDefault(require("./Authenticator.js"));
class CustomAuthenticator extends Authenticator_js_1.default {
constructor(options, browserInstanceName
// browserInstance: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser // TODO: is that instance or name?
) {
if (!options.usernameSelector || !options.passwordSelector || !options.submitSelector) {
const msg = "all options must be provided for a custom authenticator:\nusernameSelector, passwordSelector, submitSelector";
Logger_js_1.Logger.getInstance().error(msg);
throw new Error(msg);
}
super(browserInstanceName);
this.usernameSelector = options.usernameSelector;
this.passwordSelector = options.passwordSelector;
this.submitSelector = options.submitSelector;
}
async login() {
if (!(await this.getIsLoggedIn())) {
const username = await this.browserInstance.$(this.usernameSelector || "");
const submit = await this.browserInstance.$(this.submitSelector || "");
const password = await this.browserInstance.$(this.passwordSelector || "");
const wdi5Username = this.getUsername();
const wdi5Password = this.getPassword();
await username.setValue(wdi5Username);
await password.setValue(wdi5Password);
await submit.click();
this.setIsLoggedIn(true);
}
}
}
exports.default = CustomAuthenticator;
//# sourceMappingURL=CustomAuthenticator.js.map