Hur man väljer radioknapp och kontrollerarBox in Selenium

Radioknapp in Selenium

Även radioknappar kan aktiveras genom att använda click()-metoden.

Använda https://demo.guru99.com/test/radio.html för övning, se att radio1.click() växlar på alternativ1-knappen. radio2.click() växlar till alternativknappen "Alternativ2" och lämnar "Alternativ1" omarkerad.

Radioknapp in Selenium

Hur man väljer kryssruta in Selenium

Togglatt en kryssruta på/av görs också med hjälp av klick() metod.

Koden nedan kommer att klicka på Facebooks kryssruta "Håll mig inloggad" två gånger och sedan mata ut resultatet som TRUE när det är påslaget, och FALSK om det är avstängt.

Välj kryssruta in Selenium

Välj kryssruta in Selenium

isSelected()-metoden används för att veta om kryssrutan är på eller av.

Här är ett annat exempel: https://demo.guru99.com/test/radio.html

Välj kryssruta in Selenium

Komplett kod

Här är den fullständiga arbetskoden

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();		
        		
    }		
}

Felsökning

Om du stöter på NoSuchElementException() när du hittar element, betyder det att elementet inte hittas på sidan där webbdrivrutinen gick åt sidan.

  1. Kontrollera din lokalisering igen med Firepath eller Inspect Element i Chrome.
  2. Kontrollera om värdet du använde i koden skiljer sig från det för elementet i Firepath nu.
  3. Vissa egenskaper är dynamiska för få element. Om du upptäcker att värdet är annorlunda och förändras dynamiskt, överväg att använda By.xpath() eller By.cssSelector() som är mer tillförlitliga men komplexa sätt.
  4. Ibland kan det också vara ett vänteproblem, dvs webbdrivrutinen körde din kod redan innan sidan laddades helt, etc.
  5. Lägg till en väntan innan findElement() med implicita eller explicita väntar.

Sammanfattning

  • Tabellen nedan sammanfattar kommandona för att komma åt varje typ av element som diskuterats ovan
Elementet Kommando Description
Kolla upp Box, Radioknapp klick() används för att slå på/av elementet