es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo simplificar dos métodos en uno en Java

Necesito combinar dos métodos en uno solo (solo cambian los valores de xpath de los dos métodos, el resto de las funciones son iguales). Los dos métodos realizan la misma función, excepto por el valor de xpath. ¿Cómo puedo utilizar estos dos valores de xpath en un solo método y convertirlo en un solo método?

NAV_MENU_ITEMS_LIST= driver.findElement(By.xpath(mat-input-0))
NAV_SUB_MENU_ITEMS_LIST= driver.findElement(By.xpath(//span[text()=' Quick Login ']))

private void metodoUno(String nombreItemMenu) {
        NAV_MENU_ITEMS_LIST.findBy(text(nombreItemMenu))
                .click();
        log.info("Navegando a " + nombreItemMenu);
    }

private void metodoDos(String nombreSubMenu) {
        NAV_SUB_MENU_ITEMS_LIST.findBy(text(nombreSubMenu))
                           .click();
        log.info("Navegando a " + nombreSubMenu);
    }

Método principal de llamada:

public PaginaPanelControl irGestionPanelControl() {
        metodoUno("Personas");
        metodoDos("Salario");

        return new PaginaPersonas();
    }
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para combinar los dos métodos en uno solo, puedes modificar los métodos existentes para que acepten ambos valores de XPath como parámetros. Luego, puedes llamar a este nuevo método en el método principal de llamada, pasando los valores de XPath respectivos para menuItemName y subMenuItemName. Aquí tienes un ejemplo de cómo se puede hacer esto:

    private void combinedMethod(String menuItemXpath, String subMenuItemXpath, String menuItemName, String subMenuItemName) {
        WebElement menuItem = driver.findElement(By.xpath(menuItemXpath));
        WebElement subMenuItem = driver.findElement(By.xpath(subMenuItemXpath));
    
        menuItem.findBy(text(menuItemName)).click();
        log.info("Navegando a " + menuItemName);
    
        subMenuItem.findBy(text(subMenuItemName)).click();
        log.info("Navegando a " + subMenuItemName);
    }
    
    public DashboardPage goDashboardManagement() {
        String menuItemXpath = "mat-input-0";
        String subMenuItemXpath = "//span[text()=' Quick Login ']";
        String menuItemName = "People";
        String subMenuItemName = "Salary";
    
        combinedMethod(menuItemXpath, subMenuItemXpath, menuItemName, subMenuItemName);
    
        return new PplPage();
    }
    

    En el método combinedMethod anterior, menuItemXpath y subMenuItemXpath son los nuevos parámetros. El método recupera los elementos utilizando estos XPaths y realiza las mismas acciones que en los métodos anteriores.

    En el método goDashboardManagement, puedes pasar los valores relevantes al método combinedMethod y llamarlo. De esta forma, estás utilizando un único método para realizar la acción combinada de methodOne y methodTwo.

Comments are closed.