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.
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.
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
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.
- Kontrollera din lokalisering igen med Firepath eller Inspect Element i Chrome.
- Kontrollera om värdet du använde i koden skiljer sig från det för elementet i Firepath nu.
- 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.
- Ibland kan det också vara ett vänteproblem, dvs webbdrivrutinen körde din kod redan innan sidan laddades helt, etc.
- 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 |