Учебники

8) CheckBox и радио-кнопка WebDriver

В этом уроке мы увидим, как идентифицировать следующие элементы формы

Переключатель

Радио-кнопки также могут быть включены с помощью метода click ().

Используя http://demo.guru99.com/test/radio.html для практики, убедитесь, что radio1.click () включает переключатель «Option1». radio2.click () переключает переключатель «Option2», оставляя «Option1» не выбранным.

Флажок

Переключение флажка вкл / выкл также выполняется с помощью метода click () .

Приведенный ниже код дважды щелкает по флажку Facebook «Оставить меня в системе», а затем выводит результат как ИСТИНА, когда он включен, и ЛОЖЬ, если он выключен.

Метод isSelected () используется для определения того, включен или выключен флажок.

Вот еще один пример: http://demo.guru99.com/test/radio.html

Полный код

Вот полный рабочий код

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("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"));							
        		
        //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("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 Persists Checkbox Status is -  "+chkFBPersist.isSelected());							
        }		
		//driver.close();		
        		
    }		
}

Поиск проблемы

Если вы обнаружите NoSuchElementException () при поиске элементов, это означает, что элемент не найден на странице в тот момент, когда веб-драйвер получил доступ к странице.

  1. Проверьте ваш локатор снова, используя Firepath или Inspement Element в Chrome.
  2. Проверьте, отличается ли значение, которое вы использовали в коде, от значения для элемента в Firepath.
  3. Некоторые свойства являются динамическими для нескольких элементов. В случае, если вы обнаружите, что значение отличается и динамически изменяется, рассмотрите возможность использования By.xpath () или By.cssSelector (), которые являются более надежными, но сложными способами.
  4. Иногда это также может быть проблемой ожидания, т. Е. Веб-драйвер выполнил ваш код даже до полной загрузки страницы и т. Д.
  5. Добавьте ожидание перед findElement (), используя неявные или явные ожидания.

Резюме

  • В таблице ниже приведены команды для доступа к элементам каждого типа, описанным выше.
Элемент команда Описание
Флажок, Радиокнопка нажмите () используется для включения / выключения элемента