UNPKG

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
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; }