bitfront-library
Version:
Angular CLI project with components and classes used by other Angular projects of the BIT foundation.
266 lines (265 loc) • 13.6 kB
TypeScript
import { ElementFinder, ElementArrayFinder, promise } from "protractor";
/**
* Clase base con operaciones para poder acceder via protractor a los elementos del DOM. Todas las clase PO deben extender esta clase
*/
export declare abstract class Base {
static environment: any;
static path: any;
/***Funciones de alto nivel *******/
/** Retornará el elemento (ElementFinder) que coincida con el id especificado por parámetro.
* @param id identificador del elemento
*/
getElementById(id: string): ElementFinder;
/** Retornará el elemento (ElementFinder) que coincida con el tagName especificado por parámetro.
* @param tagName nombre del tag que representa al elemento a recuperar
*/
getElementByTagName(tagName: string): ElementFinder;
/** Retornará el elemento (ElementFinder) que corresponda en función de lo que diga su HTML embebido.
* En estos momentos solo retorna un el input asociado a un Calendar si el elemento asociado al id especificado es un p-calendar
* o el input directamente asociado al id especificado.
* @param html código html que está dentro del elemento y nos dirá que es
* @param id identificador del elemento
*/
getElementByHtml(html: string, id: string): ElementFinder;
/*** Funciones para acceder elementos de formularios *****/
/**
* Recupera el elemento DropDown que tenga el id especificado por parámetro
* @param id identificador del dropDown
*/
getDropDown(id: any): ElementFinder;
/**
* Recupera la lista de opciones de un dropDown. Básicamente recupera la lista de <li>
* Es necesario que quien invoque a este método previamente haga click() sobre el dropDown
* @param dropDown elemento dropDown de tipo ElementFinder
*/
getDropDownOptions(dropDown: ElementFinder): ElementArrayFinder;
/**
* Recupera el valor seleccionado en el dropDown
* @param id identificador del dropDown
*/
getDropDownValue(id: any): promise.Promise<string>;
/** Retornará el botón que contenga el texto indicado por parámetro
* @param textButton texto del botón
*/
getButton(textButton: string): ElementFinder;
/** Retornará el botón dentro de una ventana modal y que contenga el texto indicado por parámetro
* @param textButton texto del botón
*/
getDialogButton(tagName: string, textButton: string): ElementFinder;
/** Retornará todos los botones que contengan el texto indicado por parámetro
* @param textButton texto del botón
*/
getAllButtons(textButton: string): ElementArrayFinder;
/** Retornará el botón que contenga el texto Cerca*/
getSearchButton(): ElementFinder;
/** Retornará el botón que contenga el texto Desa*/
getSaveButton(): ElementFinder;
/** Retornará el botón que contenga el texto Elimina*/
getDeleteButton(): ElementFinder;
/** Retornará el botón que esté visible en caso de que haya más de uno */
getVisibleButton(textButton: string): promise.Promise<ElementFinder>;
/** Recupera el inputText que tenga asociado el campo p-calendar con id especificado.
* @param id identificador del elemento
*/
getInputCalendar(id: string): ElementFinder;
/** Retorna el input asociado al id especificado
* @param id identificador del elemento
*/
getInputText(id: string): ElementFinder;
/** Recupera el elemento InputSwitch que tenga el id especificado por parámetro
* @param id identificador del dropDown
*/
getInputSwitch(id: any): ElementFinder;
/** Recupera el elemento Editor que tenga el id especificado por parámetro
* @param id identificador del editor
*/
getBitEditor(id: any): ElementFinder;
getCheckBox(id: any): ElementFinder;
getSpanByText(text: string): ElementFinder;
getDivByText(text: string): ElementFinder;
/** Recupera todos los acordeones de la página*/
getAllAccordionTabs(): any;
/** Recupera todos los acordeones de la página que cuelgan de un tag concreto
* @param tagName nombre del tag
*/
getAllAcordionTabsFromTagName(tagName: string): ElementArrayFinder;
/** Recupera el diágolo que cuelga de un tag concreto
* @param tagName nombre del tag
*/
getDialogFromTagName(tagName: string): ElementFinder;
/** Recupera el texto que tenga el elemento HTML asociado.
* @param id identificador del elemento
*/
getTextFromInput(id: string): promise.Promise<string>;
/** Retorna el contenido del atributo value que tenga el elemento p-calendar con id especificado
* @param id
*/
getAttributeDateFromCalendar(id: string): promise.Promise<string>;
getCheckBoxValue(id: string): promise.Promise<string>;
/** Retorna el contenido del atributo value que tenga el elemento HTML con id especificado
* @param id identificador del elemento
*/
getAttributeValue(id: string): promise.Promise<string>;
/** Retorna el valor del editor de HTML con id especificado
* @param id
*/
getBitEditorValue(id: string): promise.Promise<string>;
/** Retorna la lista de opciones del elemento p-dropdown que contengan el texto especificado por parámetro
* @param dropDown elemento p-dropdown del que queremos recueperar las opciones
* @param option texto del desplegable que nos interesa
*/
getSelectOptionsByText(dropDown: ElementFinder, option: string): ElementArrayFinder;
/**
* Retorna la lista de opciones para un elemento select html que contengan el texto especificado por parámetro
* @param select elemento select html del que queremos recuperar las opciones
* @param text texto del desplegable que nos interesa
*/
getSelectHTMLOptionsByText(select: ElementFinder, text: string): ElementArrayFinder;
/**
* Retorna una promesa con un array de string conteniendo el texto de los inputs en readonly especificados
* @param inputs lista de inputs en readonly de los que extraer el texto
*/
getFormReadOnlyValues(inputs: string[]): promise.Promise<string[]>;
/**
* Retorna una promesa con un array de string conteniendo los valores de los inputs especificados
* @param inputs lista de inputs de los que extraer el contenido
*/
getFormValues(inputs: string[]): promise.Promise<string[]>;
/**
* Setea un formulario dando a cada input del array inputs el valor del array values que esté en la misma posición
* inputs[i].setValue = values[i]
* @param inputs lista de inputs a los que pasar valor
* @param values lista de valores a especificar
*/
setFormValues(inputs: string[], values: string[]): promise.Promise<void[]>;
setFormNewValues(inputs: string[], values: string[]): promise.Promise<void[]>;
/**
* Recupera el valor del elemento con idenficador especificado por parámetro
* @param input identificador del elemento del que queremos el valor
*/
getInputValue(input: string): promise.Promise<string>;
/**
* Setea el valor especificado en el elemento con identificador indicado por parámetro. De momento
* la función está soportada para dropdowns e input text
* @param input identificador del elemento del que queremos setear un valor
* @param value valor a setear en el elemento
*/
setInputValue(input: string, value: string, clear: boolean): promise.Promise<void>;
/**
* Setea el valor especificado en el elemento BitEditor pasado por parámetro.
* @param element Elemento localizado que se correponde con un BitEditor
* @param value valor a setear
*/
setBitEditorValue(element: ElementFinder, value: string): promise.Promise<void>;
clickVisibleButton(textButton: string): promise.Promise<ElementFinder>;
/**
* Pulsa la pestaña con el titulo pasado por parámetro.
*/
clickTabByTitle(title: string): void;
/**
* Pulsa la pestaña con el índice (posición) pasado por parámetro.
*/
clickTabByIndex(indice: number): void;
/**
* Selecciona una fecha dentro de un popup de un date picker. Es necesario cuando no se puede hacer un setter directamente
* del campo porque esta deshabilido y solo se puede cambiar clickando en el calendario.
*/
chooseDatePickerDate(fieldName: string, day: number, month: number, year: number): void;
/**
* Sube un fichero con el nombre y indice (en caso de múltiples ficheros) pasado por parámetro
* El fichero se encuentra en la carpeta raiz de los tests (e2e).
*/
uploadFile(filename?: string, index?: number): void;
/*** Funciones para acceder a listas de cosas *****/
/** Retornará las filas visibles (no hidden) de la tabla en la página. Solo usar cuando en la página hay una sola tabla. Típico de filtro + listado*/
getTableRows(): ElementArrayFinder;
/** Retornará las filas visibles (no hidden) de una tabla que forme parte del tag especificado por parámetro
* @param tagName nombre del tag que contiene la tabla que nos interesa
*/
getTableRowsByTagName(tagName: string): ElementArrayFinder;
/** Retornará las filas visibles (no hidden) de una tabla que forme parte del tag especificado por parámetro y que además tengan aplicada la clase específica
* @param tagName nombre del tag que contiene la tabla que nos interesa
* @param selector selector css a aplicar
*/
getTableRowsByTagNameAndSelector(tagName: string, selector: string): ElementArrayFinder;
/** Retornará el indice de la fila dentro de la tabla con el tag especificado en el que coincida el valor de la columna con el indice y valor pasado por parámetro
* @param tagName nombre del tag que contiene la tabla que nos interesa
* @param index indice de la columna en la que se busca el valor
* @param value valor de la celda cuya fila se quiere buscar
*/
getTableRowIndexByCellIndexValue(tagName: string, index: number, value: string): promise.Promise<number>;
/**
* Elimina la fila en la posicion especificad y de la tabla con el tag especificado.
* Utilizado en los listados donde la primera columna es un checkbox para seleccionar la fila a eliminar.
* @param tagName nombre del tag que contiene la tabla que nos interesa
* @param index indice de la fila a eliminar
*/
deleteTableRowByIndex(tagName: string, index: promise.Promise<number>): void;
/**
* Pulsa la fila de una tabla localizándola segun el indice y valor de columna pasados por parámetros.
* @param tagName nombre del tag que contiene la tabla que nos interesa
* @param index indice de la columna a buscar para saber la posición de la fila a eliminar
* @param value valor de la columna a buscar para saber la posición de la fila a eliminar
*/
clickTableRowByCellIndexValue(tagName: string, index: number, value: string): promise.Promise<number>;
/** Retornará una promesa con el número de elementos que estén visibles en la lista especificada
* @param list lista de elementos a analizar
*/
getCountVisibleElements(list: ElementArrayFinder): promise.Promise<number>;
/**
* Retorna una promesa con true si todos los elementos de la lsita contienen el texto esperado y false en caso contrario
* @param list ElementArrayFinder con la lista de elementos del dom a analizar
* @param text texto que deberían contener todos los elementos del dom especificados
*/
allElementsContainingText(list: ElementArrayFinder, text: string): promise.Promise<boolean>;
/*** Funciones varias *****/
expectIsPresent(element: ElementFinder, error?: string): void;
expectIsNotPresent(element: ElementFinder, error?: string): void;
expectVisibleButtonIsPresent(textButton: string): void;
expectTabIsActive(tabs: string[]): void;
expectTabIsEnabled(tabs: string[]): void;
expectTabIsDisabled(tabs: string[]): void;
/** Retorna true si el DIV de error es visible */
expectExisteError(errorMessage?: string[]): void;
waitForAngular(): promise.Promise<any>;
/** Navegará a la url que indiquemos por parámetro
* @param url URL a la que navegar incluido el contextPath pero sin el host y puerto
*/
navigateTo(url: string): promise.Promise<any>;
reload(): any;
scrollDown(x: any, y: any): any;
scrollBottom(): any;
maximize(): any;
getCurrentUrl(): promise.Promise<string>;
/**
* Retornará el ID de un objeto y que se encuentra al final de la URL actual.
*/
getIdFromCurrentUrl(): promise.Promise<number>;
acceptAlert(texto?: string): promise.Promise<void>;
/**
* Retornará true si el elemento pasado por parámetro tiene el atributo "disabled" a true.
* Util para comprobar si un botón está activo o no.
*/
isDisabled(element: ElementFinder): promise.Promise<boolean>;
/**
* Sitúa el cursor sobre el elemento.
*/
mouseOver(element: ElementFinder): void;
/**
* Sitúa el cursor sobre el elemento.
*/
mouseClick(element: ElementFinder, offset?: {
x: number;
y: number;
}): void;
/**
* Sitúa el cursor sobre el elemento.
*/
mouseCtrlClick(element: ElementFinder, offset?: {
x: number;
y: number;
}): void;
printOptionsCount(optionsCount: promise.Promise<number>): void;
printHowManyRows(rowsCount: promise.Promise<number>): void;
log(texto: string): void;
}