Seleziona il pulsante di opzione e selezionaBox in Selenium
โก Riepilogo intelligente
Seleziona il pulsante di opzione e selezionaBox in Selenium Questo tutorial illustra le tecniche di WebDriver per automatizzare due dei controlli dei moduli piรน comuni. Spiega come i metodi click() e isSelected() attivano/disattivano i pulsanti radio e le caselle di controllo e illustra il funzionamento. Java e condivide suggerimenti per la risoluzione dei problemi relativi ai localizzatori fragili.

Pulsante di opzione inserito Selenium
I pulsanti radio vengono attivati โโtramite il click() metodo, proprio come qualsiasi altro WebElement in SeleniumPoichรฉ in un gruppo di pulsanti di opzione puรฒ essere attiva una sola opzione alla volta, cliccando su una seconda opzione la prima viene automaticamente deselezionata.
utilizzando https://demo.guru99.com/test/radio.html come pagina di pratica, si noti che radio1.click() seleziona il pulsante di opzione โOpzione1โ. Chiamata radio2.click() quindi seleziona "Opzione2" lasciando deselezionata "Opzione1".
Come selezionare una casella di controllo in Selenium
TogglL'attivazione o la disattivazione di una casella di controllo avviene anche tramite click() Metodo. Il codice seguente fa clic due volte sulla casella di controllo "Mantienimi connesso" di Facebook e stampa TRUE quando la casella di controllo รจ attiva e FALSE quando รจ disattivata.
Migliori isSelected() Questo metodo viene utilizzato per confermare se una casella di controllo รจ attivata o disattivata, un'asserzione fondamentale quando si convalida lo stato di un modulo nei casi di test.
Ecco un altro esempio di pagina: https://demo.guru99.com/test/radio.html.
Completato Code Esempio
Ecco il codice completo e funzionante che attiva/disattiva entrambi i pulsanti radio e la casella di controllo per il login persistente di Facebook.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;
public class Form {
public static void main(String[] args) {
// Declaration and instantiation of objects and variables
System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://demo.guru99.com/test/radio.html");
WebElement radio1 = driver.findElement(By.id("vfb-7-1"));
WebElement radio2 = driver.findElement(By.id("vfb-7-2"));
// Radio Button 1 is selected
radio1.click();
System.out.println("Radio Button Option 1 Selected");
// Radio Button 1 is de-selected and Radio Button 2 is selected
radio2.click();
System.out.println("Radio Button Option 2 Selected");
// Selecting Checkbox
WebElement option1 = driver.findElement(By.id("vfb-6-0"));
// This will toggle the checkbox
option1.click();
// Check whether the checkbox is toggled on
if (option1.isSelected()) {
System.out.println("Checkbox is Toggled On");
} else {
System.out.println("Checkbox is Toggled Off");
}
// Selecting a Checkbox and using the isSelected method
driver.get("https://demo.guru99.com/test/facebook.html");
WebElement chkFBPersist = driver.findElement(By.id("persist_box"));
for (int i = 0; i < 2; i++) {
chkFBPersist.click();
System.out.println("Facebook Persists Checkbox Status is - " + chkFBPersist.isSelected());
}
// driver.close();
}
}
Troubleshooting
Se incontri NoSuchElementException Durante la ricerca degli elementi, significa che l'elemento non era presente nel momento in cui WebDriver ha acceduto alla pagina. Utilizza la checklist qui sotto per ripristinare rapidamente la situazione:
- Verifica nuovamente il tuo localizzatore utilizzando FirePath o la funzione "Ispeziona elemento" di Chrome.
- Verifica che il valore utilizzato nel codice corrisponda al valore corrente dell'elemento nella pagina.
- Alcuni elementi hanno attributi dinamici, simili a quelli che potresti vedere quando selezionare un menu a tendina in Selenium webdriverIn questi casi, preferire
By.xpath()orBy.cssSelector()che sono piรน affidabili ma leggermente piรน complesse. - A volte il problema รจ legato ai tempi: WebDriver ha eseguito il tuo codice prima che la pagina avesse terminato il caricamento.
- Aggiungi un'attesa prima
findElement()Utilizzo di attese implicite o esplicite per dare all'elemento il tempo di essere visualizzato.




