V tej vadnici bomo videli, kako prepoznati naslednje elemente obrazca
- Radijski gumb
- Potrditveno polje
Radijski gumb
Tudi radijske gumbe lahko vklopite z uporabo metode click ().
Če za vajo uporabite http://demo.guru99.com/test/radio.html, glejte, da radio1.click () preklopi na izbirni gumb "Option1". radio2.click () preklopi na izbirni gumb "Option2", pri čemer možnost "Option1" ni izbrana.
Potrditveno polje
Vklop / izklop potrditvenega polja se izvede tudi z uporabo metode click () .
Spodnja koda bo dvakrat kliknila Facebookovo potrditveno polje »Naj ostane prijavljen« in nato bo rezultat prikazal kot TRUE, ko je vklopljen, in FALSE, če je izklopljen.
z metodo isSelected () se ve, ali je potrditveno polje vklopljeno ali izklopljeno.
Tu je še en primer: http://demo.guru99.com/test/radio.html
Popolna koda
Tu je celotna delovna koda
uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;uvoz org.openqa.selenium. *;Obrazec za javni razred {public static void main (String [] args) {// deklaracija in instanciranje objektov / spremenljivkSystem.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Gonilnik WebDriver = nov 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"));// Izbran je radijski gumb1radio1.click ();System.out.println ("Izbrana možnost 1 radijskega gumba");// Radio Button1 je izbran in izbran je Radio Button2radio2.click ();System.out.println ("Izbrana možnost 2 radijskega gumba");// Izbira CheckBoxWebElement option1 = driver.findElement (By.id ("vfb-6-0"));// To bo preklopilo potrditveno poljeoption1.click ();// Preverite, ali je potrditveno polje vklopljenoif (option1.isSelected ()) {System.out.println ("Potrditveno polje je vklopljeno");} še {System.out.println ("Potrditveno polje je izklopljeno");}// Izbira potrditvenega polja in uporaba isSelected Methoddriver.get ("http://demo.guru99.com/test/facebook.html");WebElement chkFBPersist = driver.findElement (By.id ("persist_box"));za (int i = 0; i <2; i ++) {chkFBPersist.click ();System.out.println ("Stanje potrditvenega polja Facebook vztraja -" + chkFBPersist.isSelected ());}//driver.close ();}}
Odpravljanje težav
Če med iskanjem elementov naletite na NoSuchElementException (), to pomeni, da elementa na strani ni mogoče najti na mestu, kjer je spletni gonilnik dostopal do strani.
- Znova preverite svoj lokator s pomočjo Firepath ali Inspect Element v Chromu.
- Preverite, ali se vrednost, ki ste jo uporabili v kodi, razlikuje od vrednosti elementa v Firepathu zdaj.
- Nekatere lastnosti so dinamične za nekaj elementov. V primeru, da ugotovite, da je vrednost drugačna in se dinamično spreminja, razmislite o uporabi By.xpath () ali By.cssSelector (), ki sta bolj zanesljiva, a zapletena načina.
- Včasih je to lahko tudi težava s čakanjem, tj. Spletni gonilnik je izvršil vašo kodo, še preden se je stran popolnoma naložila itd.
- Dodajte čakanje pred findElement () z uporabo implicitnih ali eksplicitnih čakal.
Povzetek
- Spodnja tabela povzema ukaze za dostop do posamezne zgoraj obravnavane vrste elementov
Element | Ukaz | Opis |
---|---|---|
Potrditveno polje, radijski gumb | kliknite () | uporablja se za vklop / izklop elementa |