Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- const Utils = require('../step-utils');
- const Logger = require('../../logger').log;
- const Debug = require('../../debug');
- const Globals = require('../../globals');
- module.exports = {
- initConfig,
- run
- };
- let _config;
- let _errorConfig;
- function getConfig() {
- return _config;
- }
- function initConfig (newConfig, newErrorConfig) {
- _config = newConfig;
- _errorConfig = newErrorConfig;
- };
- function* maintenanceMessageHandling(nightmare, config) {
- var maintenanceMessage = yield nightmare.use(Utils.getElementTextContent(config.selectors.maintenanceMessage));
- var userNameFieldFound = yield nightmare.exists(config.selectors.userNameTextBox);
- var passwordFieldFound = yield nightmare.exists(config.selectors.passwordTextBox);
- if (maintenanceMessage.indexOf(config.maintenanceContents[0]) > -1 && !userNameFieldFound && !passwordFieldFound) {
- throw new Error('maintenance message:' + maintenanceMessage);
- }
- }
- function* run() {
- const config = getConfig();
- try {
- const nightmare = Globals.getNightmare();
- yield nightmare.goto(config.pageURL).wait();
- Logger.info('pageURL loaded');
- Logger.info('waiting for loadmask or maintenanceMessage...');
- yield nightmare.wait(
- function (selectors) {
- var maintenanceMessage = selectors.maintenanceMessage ? document.querySelector(selectors.maintenanceMessage) : null;
- var mask = document.querySelector(selectors.mask);
- return mask || maintenanceMessage;
- }, config.selectors);
- Logger.info('waiting for loadmask or maintenanceMessage...end');
- const loadMaskFound = yield nightmare.exists(config.selectors.mask);
- const maintenanceMessageFoundBeforeMask = yield nightmare.exists(config.selectors.maintenanceMessage);
- if (maintenanceMessageFoundBeforeMask && !loadMaskFound) {
- yield maintenanceMessageHandling(nightmare, config);
- }
- Logger.info('waiting for loadmask disappear...');
- yield nightmare.use(Utils.waitForNotExist(config.selectors.mask));
- Logger.info('waiting for loadmask disappear...end');
- Logger.info('waiting for userNameTextBox or maintenanceMessage...');
- yield nightmare.wait(
- function (selectors) {
- var maintenanceMessage = selectors.maintenanceMessage ? document.querySelector(selectors.maintenanceMessage) : null;
- var usernameTextBox = document.querySelector(selectors.userNameTextBox);
- return usernameTextBox || maintenanceMessage;
- }, config.selectors);
- Logger.info('waiting for userNameTextBox or maintenanceMessage...end');
- const maintenanceMessageFound = yield nightmare.exists(config.selectors.maintenanceMessage);
- if (maintenanceMessageFound) {
- yield maintenanceMessageHandling();
- }
- var userNameFieldFound = yield nightmare.exists(config.selectors.userNameTextBox);
- var passwordFieldFound = yield nightmare.exists(config.selectors.passwordTextBox);
- var loginButtonFound = yield nightmare.exists(config.selectors.loginButton);
- if (userNameFieldFound && passwordFieldFound && loginButtonFound) {
- Logger.info(config.log);
- } else {
- var notFoundInfo = {
- 'usernameFound': userNameFieldFound,
- 'passwordFound': passwordFieldFound,
- 'loginButtonFound': loginButtonFound
- };
- var notFoundString = JSON.stringify(notFoundInfo);
- throw new Error('field not found:' + notFoundString);
- }
- if (config.debug || Debug.isDebugUser()) yield Debug.upload(config.name, config.debugWait);
- yield Utils.markAsDone(config);
- } catch (error) {
- error.configName = config.name;
- throw error;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement