estefafdez / selenium-template

Selenium Template to start testing
Mozilla Public License 2.0
1 stars 1 forks source link

Clase 2: Tests Input Form. #43

Open estefafdez opened 4 years ago

estefafdez commented 4 years ago

Crea nuevas clases de Test siguiendo las siguientes normas:

En cada test tienes que:

---------------------------------- Clase Test 2 ----------------------------------

Ejercicio 4

Ejercicio 5

Ejercicio 6

Ejercicio 7

estefafdez commented 4 years ago
    /**
     * Marcar dos opciones de Multiple Checkbox Demo y comprobar que ambas están seleccionadas
     */
    @Test

    public void testMultipleCheckboxDemoTwoOptions() {

        driver.navigate().to("https://www.seleniumeasy.com/test/");

        WebElement inputFormsOption = driver.findElement(By.xpath("//li[@class='tree-branch']/a[contains(text(),'Input Forms')]"));
        inputFormsOption.click();

        WebElement checkboxDemoOption = driver.findElement(By.xpath("//li[@class='tree-branch']/ul/li/a[contains(text(),'Checkbox Demo')]"));
        checkboxDemoOption.click();

        WebElement option1Checkbox = driver.findElement(By.xpath("//label[contains(., 'Option 1')]/input"));

        // Método para esperar a una acción esperada, por ejemplo que un elemento sea visible. 
        // El tiempo máximo que esperamos es 20 segundos. 
        WebDriverWait wait = new WebDriverWait(driver, 20);
        // Acción para realizar una acción definida en selenium como, por ejemplo, mover el foco a un punto concreto. 
        Actions act = new Actions(driver);

        // Esperamos a que el elemento sea visible. 
        wait.until(ExpectedConditions.visibilityOf(option1Checkbox));
        // Como un simple click no nos vale, hemos forzado a mover el foco a ese elemento y forzar el click. 
        act.moveToElement(option1Checkbox).click().build().perform();

        // Hacemos lo mismo para el elemento 3
        WebElement option3Checkbox = driver.findElement(By.xpath("//label[contains(., 'Option 3')]/input"));
        wait.until(ExpectedConditions.visibilityOf(option3Checkbox));
        act.moveToElement(option3Checkbox).click().build().perform();

        // Cambiamos la lógca para utilizar el método de selenium de isSelected. 
        Assert.assertTrue(option1Checkbox.isSelected(), "La opción 1 no está seleccionada");
        Assert.assertTrue(option3Checkbox.isSelected(), "La opción 3 no está seleccionada");
    }