W tym samouczku zobaczymy, jak zidentyfikować następujące elementy formularza
- Przycisk radiowy
- Pole wyboru
Przycisk radiowy
Przyciski opcji również można włączać za pomocą metody click ().
Używając http://demo.guru99.com/test/radio.html do ćwiczeń, zobacz, że radio1.click () przełącza się na przycisk radiowy „Option1”. radio2.click () włącza przycisk radiowy „Opcja2”, pozostawiając niezaznaczoną opcję „Opcja1”.
Pole wyboru
Włączanie / wyłączanie pola wyboru odbywa się również za pomocą metody click () .
Poniższy kod dwukrotnie kliknie pole wyboru „Nie wylogowuj mnie” Facebooka, a następnie wyświetli wynik jako PRAWDA, gdy jest włączony, i FAŁSZ, jeśli jest wyłączony.
isSelected () służy do określenia, czy pole wyboru jest włączone, czy wyłączone.
Oto kolejny przykład: http://demo.guru99.com/test/radio.html
Kompletny kod
Oto cały działający kod
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) {// deklaracja i tworzenie instancji obiektów / zmiennychSystem.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Sterownik WebDriver = nowy 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"));// Wybrano przycisk radiowy Button1radio1.click ();System.out.println ("Wybrano opcję 1 przycisku radiowego");// Radio Button1 jest odznaczone, a Radio Button2 jest zaznaczoneradio2.click ();System.out.println ("Wybrano opcję 2 przycisku radiowego");// Wybieranie CheckBoxOpcja WebElement1 = driver.findElement (By.id ("vfb-6-0"));// Spowoduje to przełączenie pola wyboruoption1.click ();// Sprawdź, czy pole wyboru jest włączoneif (option1.isSelected ()) {System.out.println ("Pole wyboru jest włączone");} else {System.out.println ("Pole wyboru jest wyłączone");}// Zaznaczenie pola wyboru i użycie metody isSelecteddriver.get („http://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 utrzymuje status pola wyboru to -" + chkFBPersist.isSelected ());}//driver.close ();}}
Rozwiązywanie problemów
Jeśli napotkasz NoSuchElementException () podczas wyszukiwania elementów, oznacza to, że element nie został znaleziony na stronie w miejscu, w którym sterownik sieciowy uzyskał dostęp do strony.
- Sprawdź swój lokalizator ponownie, używając Firepath lub Inspect Element w Chrome.
- Sprawdź teraz, czy wartość użyta w kodzie różni się od wartości elementu w Firepath.
- Niektóre właściwości są dynamiczne dla kilku elementów. W przypadku stwierdzenia, że wartość jest inna i zmienia się dynamicznie, rozważ użycie By.xpath () lub By.cssSelector (), które są bardziej niezawodne, ale bardziej złożone.
- Czasami może to być również problem z czekaniem, tj. Sterownik sieciowy wykonał kod nawet przed całkowitym załadowaniem strony itp.
- Dodaj oczekiwanie przed findElement (), używając niejawnych lub jawnych czekań.
Podsumowanie
- Poniższa tabela zawiera podsumowanie poleceń umożliwiających dostęp do każdego typu elementu omówionego powyżej
Element | Komenda | Opis |
---|---|---|
Pole wyboru, przycisk radiowy | Kliknij() | służy do włączania / wyłączania elementu |