Come selezionare il pulsante di opzione e controllareBox in Selenium
Pulsante di opzione inserito Selenium
Anche i pulsanti di opzione possono essere attivati utilizzando il metodo click().
utilizzando https://demo.guru99.com/test/radio.html per esercitazione, vedi che radio1.click() attiva/disattiva il pulsante di opzione "Opzione1". radio2.click() attiva/disattiva il pulsante di opzione "Opzione2" lasciando l'"Opzione1" deselezionata.
Come selezionare la casella di controllo in Selenium
TogglL'attivazione/disattivazione di una casella di controllo avviene anche tramite clic() metodo.
Il codice seguente farà clic due volte sulla casella di controllo di Facebook "Resta connesso" e poi restituirà il risultato come TRUE quando è attivata e FALSE se è disattivata.
Il metodo isSelected() viene utilizzato per sapere se la casella di controllo è attivata o disattivata.
Ecco un altro esempio: https://demo.guru99.com/test/radio.html
Codice completo
Ecco il codice completo di funzionamento
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/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 Button1 is selected radio1.click(); System.out.println("Radio Button Option 1 Selected"); //Radio Button1 is de-selected and Radio Button2 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 Check box option1.click(); // Check whether the Check box is toggled on if (option1.isSelected()) { System.out.println("Checkbox is Toggled On"); } else { System.out.println("Checkbox is Toggled Off"); } //Selecting Checkbox and using 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 di elementi, significa che l'elemento non è stato trovato nella pagina nel punto in cui il driver Web ha effettuato l'accesso alla pagina.
- Controlla di nuovo il tuo localizzatore utilizzando Firepath o Ispeziona Elemento in Chrome.
- Controlla ora se il valore che hai utilizzato nel codice è diverso da quello dell'elemento in Firepath.
- Alcune proprietà sono dinamiche per pochi elementi. Nel caso in cui scoprissi che il valore è diverso e cambia dinamicamente, considera di usare By.xpath() o By.cssSelector() che sono metodi più affidabili ma complessi.
- A volte potrebbe trattarsi anche di un problema di attesa, ad esempio il driver Web ha eseguito il codice anche prima che la pagina fosse caricata completamente, ecc.
- Aggiungi un'attesa prima di findElement() utilizzando attese implicite o esplicite.
Sommario
- La tabella seguente riassume i comandi per accedere a ciascuna tipologia di elemento discusso sopra
elemento | Comando | Descrizione |
---|---|---|
Vedi Box, Radio Button | clic() | utilizzato per attivare/disattivare l'elemento |