Package br.com.pixeon.pages

Source Code of br.com.pixeon.pages.Header

package br.com.pixeon.pages;

import org.openqa.selenium.By;
import org.openqa.selenium.StaleElementReferenceException;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;

import br.com.pixeon.util.Webdriver;

/**
* Disponibiliza os recursos para manipular os elementos dentro do 'topNavBar',
* essa estrutura será exibida após o usuário realizar o login.
*
*/

public class Header {

  public Header() {
  }

  // INICIO CLINICA

  /**
   * Seleciona a clínica do usuário, caso ele esteja associado a mais de uma
   * clínica.
   *
   * @param nomeClinica
   *            Nome da clínica que o usuário vai se conectar.
   */
  public void selecionarClinica(String nomeClinica) {
    Select lista = new Select(Webdriver.obterInstancia().findElement(By.id("selClinicOptions")));
    lista.selectByVisibleText(nomeClinica);
    pressionarBotaoAceitar();
  }

  /**
   * Verifica se o formulário para seleção da clínica está sendo exibido.
   *
   * @return TRUE caso esteja visível e FALSE caso contrário.
   */
  public boolean existeFormClinica() {
    boolean resultado = false;
    try {
      Webdriver.obterInstancia().findElement(By.id("formClinicSelect"));
      resultado = true;
    } catch (Exception e) {
      System.out.println("EXCEPTION: existeFormClinica()." + e);
    }
    return resultado;
  }

  public void pressionarBotaoAceitar() {
    try {
      Webdriver.obterInstancia().findElement(By.id("acceptedClinicSelect")).click();
    } catch (Exception e) {
      System.out.println("EXCEPTION: pressionarBotaoAceitar()." + e);
    }
  }

  public String retornaNomeClinicaAtual() {
    String resultado = null;
    try {
      resultado = Webdriver.obterInstancia().findElement(By.id("menuClinicNameMoreThanOne")).getAttribute("title");
    } catch (Exception e) {
      System.out.println("EXCEPTION: retoraNomeClinicaAtual()." + e);
    }
    return resultado;
  }

  // FIM CLINICA

  /**
   * Verifica se o menu do usuário foi carregado na página.
   *
   * @return TRUE caso tenha localizado o menu do usuário e FALSE caso contrário.
   */
  public boolean menuUsuarioVisivel() {
    boolean resultado = false;
    try {
      WebDriverWait wait = new WebDriverWait(Webdriver.obterInstancia(), 15);
      wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("userSideNavBar")));
      resultado = true;
    } catch (Exception e) {
      resultado = false;
    }
    return resultado;
  }
 
  /**
   *
   */
  public void abrirMenuUsuario() {
    try {
      Webdriver.obterInstancia().findElement(By.id("menuUser")).click();
    } catch (StaleElementReferenceException e) {
      System.out.println("EXCEPTION: abrirMenuUsuario()." + e);
    }
  }
 
  private boolean menuUsuarioExpandido(){
    boolean resultado = false;
    try {
      resultado = Boolean.parseBoolean((Webdriver.obterInstancia().findElement(By.id("menuUser")).getAttribute("aria-expanded")));
    } catch (Exception e) {
      System.out.println("EXCEPTION: menuUsuarioExpandido()." + e);
    }
    return resultado;
  }

  public void acessarMenuSair() {
    try {
      abrirMenuUsuario();
      if(menuUsuarioExpandido()){
        Webdriver.obterInstancia().findElement(By.id("userNavBarSair")).click();
      }
    } catch (Exception e) {
      System.out.println("EXCEPTION: acessarMenuSair()." + e);
    }
  }
 
  public void acessarItemMenu(String nomeItem){
    String item = "act_"+nomeItem;
    if(!menuUsuarioExpandido()){
      abrirMenuUsuario();
    }
    Webdriver.obterInstancia().findElement(By.id(item)).click();   
  }

 

  // TODO: método para pegar CRM;
  // TODO: método para pegar nome do usuário;
  // TODO: método para gerir as abas das clínicas... Estudar melhor como fazer
 

 
} // fim classe
TOP

Related Classes of br.com.pixeon.pages.Header

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.