En aquest tema, aprendrem com interactuar amb elements web comuns com els desplegables i les caixes de selecció utilitzant Selenium WebDriver. Aquests elements són fonamentals en moltes aplicacions web, i saber com gestionar-los és essencial per a l'automatització de proves.
Desplegables
Els desplegables són elements que permeten a l'usuari seleccionar una opció d'una llista. En HTML, aquests elements es representen amb l'etiqueta <select>. A continuació, veurem com podem interactuar amb ells utilitzant Selenium.
Exemple de Codi: Seleccionar una Opció d'un Desplegable
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;
public class DropdownExample {
    public static void main(String[] args) {
        // Configura el WebDriver
        System.setProperty("webdriver.chrome.driver", "ruta/al/driver/chromedriver");
        WebDriver driver = new ChromeDriver();
        // Navega a la pàgina amb el desplegable
        driver.get("http://exemple.com/pagina-amb-desplegable");
        // Localitza l'element desplegable
        WebElement dropdownElement = driver.findElement(By.id("id-del-desplegable"));
        // Crea un objecte Select
        Select dropdown = new Select(dropdownElement);
        // Selecciona una opció pel seu text visible
        dropdown.selectByVisibleText("Opció 1");
        // Tanca el navegador
        driver.quit();
    }
}Explicació del Codi
- WebDriver i ChromeDriver: Inicialitzem el WebDriver per controlar el navegador Chrome.
 - Localització de l'Element: Utilitzem 
findElementper localitzar el desplegable per l'atributid. - Select Object: Creem un objecte 
Selectpassant-li l'element desplegable. - Selecció d'Opció: Utilitzem 
selectByVisibleTextper seleccionar una opció pel seu text visible. 
Caixes de Selecció
Les caixes de selecció permeten a l'usuari seleccionar múltiples opcions. En HTML, es representen amb l'etiqueta <input type="checkbox">.
Exemple de Codi: Seleccionar una Caixa de Selecció
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class CheckboxExample {
    public static void main(String[] args) {
        // Configura el WebDriver
        System.setProperty("webdriver.chrome.driver", "ruta/al/driver/chromedriver");
        WebDriver driver = new ChromeDriver();
        // Navega a la pàgina amb la caixa de selecció
        driver.get("http://exemple.com/pagina-amb-caixa-de-seleccio");
        // Localitza la caixa de selecció
        WebElement checkbox = driver.findElement(By.id("id-de-la-caixa"));
        // Marca la caixa de selecció si no està marcada
        if (!checkbox.isSelected()) {
            checkbox.click();
        }
        // Tanca el navegador
        driver.quit();
    }
}Explicació del Codi
- Localització de l'Element: Utilitzem 
findElementper localitzar la caixa de selecció per l'atributid. - Comprovació de l'Estat: Utilitzem 
isSelectedper comprovar si la caixa de selecció està marcada. - Interacció: Utilitzem 
clickper marcar la caixa de selecció si no ho està. 
Exercicis Pràctics
- Exercici 1: Escriu un script que seleccioni una opció d'un desplegable utilitzant 
selectByIndex. - Exercici 2: Crea un script que marqui totes les caixes de selecció en una pàgina web.
 
Solucions
Exercici 1 Solució:
Exercici 2 Solució:
// Localitza totes les caixes de selecció
List<WebElement> checkboxes = driver.findElements(By.cssSelector("input[type='checkbox']"));
// Marca totes les caixes de selecció
for (WebElement checkbox : checkboxes) {
    if (!checkbox.isSelected()) {
        checkbox.click();
    }
}Conclusió
En aquesta secció, hem après com gestionar desplegables i caixes de selecció amb Selenium WebDriver. Aquests conceptes són fonamentals per a l'automatització de proves en aplicacions web que utilitzen aquests elements. Practicar amb aquests exemples i exercicis t'ajudarà a consolidar els teus coneixements i a preparar-te per a escenaris més complexos.
Automatització de Proves amb Selenium
Mòdul 1: Introducció a l'Automatització de Proves
- Què és l'Automatització de Proves?
 - Beneficis de l'Automatització de Proves
 - Visió General de Selenium
 - Configuració del Teu Entorn
 
Mòdul 2: Començant amb Selenium
- Introducció a Selenium WebDriver
 - Instal·lació de Selenium WebDriver
 - Primer Script de Selenium
 - Comprensió de la Interfície WebDriver
 
Mòdul 3: Localització d'Elements Web
- Introducció als Localitzadors
 - Ús de Localitzadors ID i Nom
 - XPath i Selectors CSS
 - Estratègies Avançades de Localització
 
Mòdul 4: Interacció amb Elements Web
- Realització d'Accions sobre Elements Web
 - Gestió de Desplegables i Caixes de Selecció
 - Treballant amb Alertes i Pop-ups
 - Gestió de Finestres del Navegador i Frames
 
Mòdul 5: Sincronització en Selenium
Mòdul 6: Marc de Proves i Selenium
- Introducció a TestNG
 - Configuració de TestNG amb Selenium
 - Creació de Casos de Prova TestNG
 - Proves Basades en Dades amb TestNG
 
Mòdul 7: Conceptes Avançats de Selenium
- Gestió de Trucades AJAX
 - Treballant amb Cookies
 - Captura de Captures de Pantalla
 - Execució de JavaScript amb Selenium
 
Mòdul 8: Selenium Grid i Proves en Paral·lel
- Introducció a Selenium Grid
 - Configuració de Selenium Grid
 - Execució de Proves en Paral·lel
 - Proves Multinavegador
 
Mòdul 9: Integració Contínua i Selenium
- Introducció a la Integració Contínua
 - Integració de Selenium amb Jenkins
 - Automatització de l'Execució de Proves
 - Informes i Registre
 
