Hoe CheckBox en keuzerondje te selecteren in Selenium WebDriver

Inhoudsopgave:

Anonim

In deze zelfstudie zullen we zien hoe u de volgende formulierelementen kunt identificeren

  • Radio knop
  • Selectievakje

Radio knop

Keuzerondjes kunnen ook worden ingeschakeld met behulp van de methode click ().

Gebruik http://demo.guru99.com/test/radio.html om te oefenen, zie dat radio1.click () het keuzerondje "Option1" inschakelt. radio2.click () schakelt de "Option2" radioknop in en laat de "Option1" niet geselecteerd.

Selectievakje

Het in- / uitschakelen van een selectievakje wordt ook gedaan met de methode click () .

De onderstaande code zal twee keer op het Facebook-selectievakje "Aangemeld blijven" klikken en vervolgens het resultaat als WAAR als het is ingeschakeld, en ONWAAR als het is uitgeschakeld, weergeven.

isSelected () methode wordt gebruikt om te weten of het selectievakje is in- of uitgeschakeld.

Hier is nog een voorbeeld: http://demo.guru99.com/test/radio.html

Volledige code

Hier is de volledige werkende code

import org.openqa.selenium.By;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.chrome.ChromeDriver;importeer org.openqa.selenium. *;openbaar klasformulier {public static void main (String [] args) {// declaratie en concretisering van objecten / variabelenSystem.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-stuurprogramma = nieuwe ChromeDriver ();driver.get ("http://demo.guru99.com/test/radio.html");WebElement radio1 = driver.findElement (By.id ("vfb-7-1"));WebElement radio2 = driver.findElement (By.id ("vfb-7-2"));// Keuzerondje1 is geselecteerdradio1.click ();System.out.println ("Keuzerondje optie 1 geselecteerd");// Keuzerondje1 is gedeselecteerd en Keuzerondje2 is geselecteerdradio2.click ();System.out.println ("Keuzerondje optie 2 geselecteerd");// CheckBox selecterenWebElement optie1 = driver.findElement (By.id ("vfb-6-0"));// Hiermee schakelt u het selectievakje inoptie1.click ();// Controleer of het selectievakje is ingeschakeldif (option1.isSelected ()) {System.out.println ("Checkbox is ingeschakeld");} anders {System.out.println ("Checkbox is uitgeschakeld");​// Selectievakje selecteren en de isSelected-methode gebruikendriver.get ("http://demo.guru99.com/test/facebook.html");WebElement chkFBPersist = driver.findElement (By.id ("persist_box"));voor (int i = 0; i <2; i ++) {chkFBPersist.click ();System.out.println ("Facebook Persists Checkbox Status is -" + chkFBPersist.isSelected ());​//driver.close ();​​

Probleemoplossen

Als u NoSuchElementException () tegenkomt tijdens het zoeken naar elementen, betekent dit dat het element niet op de pagina wordt gevonden op het punt dat het webstuurprogramma de pagina heeft geopend.

  1. Controleer uw locator opnieuw met Firepath of Inspect Element in Chrome.
  2. Controleer of de waarde die je in de code hebt gebruikt, anders is dan die voor het element in Firepath.
  3. Sommige eigenschappen zijn dynamisch voor enkele elementen. Als u merkt dat de waarde anders is en dynamisch verandert, overweeg dan By.xpath () of By.cssSelector () te gebruiken, die betrouwbaarder maar complexer zijn.
  4. Soms kan het ook een wachtprobleem zijn, dwz het webstuurprogramma heeft uw code uitgevoerd voordat de pagina volledig was geladen, enz.
  5. Voeg een wait before findElement () toe met behulp van impliciete of expliciete wachttijden.

Overzicht

  • De onderstaande tabel geeft een overzicht van de opdrachten om toegang te krijgen tot elk type element dat hierboven is besproken
Element Opdracht Omschrijving
Selectievakje, keuzerondje Klik() gebruikt om het element aan / uit te zetten