Веб-элемент в Selenium: ТекстBox, Кнопка, sendkeys(), клик()

Веб-элемент в Selenium

Формы — это основные веб-элементы для получения информации от посетителей сайта. Веб-формы имеют различные элементы графического интерфейса, такие как текстовые поля, поля пароля, флажки, переключатели, раскрывающиеся списки, ввод файлов и т. д.

Мы увидим, как получить доступ к этим различным элементам формы, используя Selenium Веб-драйвер с Java. Selenium инкапсулирует каждый элемент формы как объект WebElement. Он предоставляет API для поиска элементов и выполнения над ними действий, таких как ввод текста в текстовые поля, нажатие кнопок и т. д. Мы увидим методы, доступные для доступа к каждому элементу формы.

Введение в WebElement, findElement(), findElements()

Selenium Веб-драйвер инкапсулирует простой элемент формы как объект ВебЭлемент.

Существуют различные методы, с помощью которых WebDriver идентифицирует элементы формы на основе различных свойств веб-элементов, таких как идентификатор, имя, класс, XPath, имя тега, селекторы CSS, текст ссылки и т. д.

Web Driver предоставляет следующие два метода WebElement для поиска элементов.

  • найтиЭлемент() – находит один веб-элемент и возвращает его как WebElement Selenium объект.
  • найтиЭлементы() – возвращает список объектов WebElement, соответствующих критериям локатора.

Давайте посмотрим фрагменты кода, чтобы получить один элемент — текстовое поле на веб-странице как объект WebElement с помощью метода findElement(). Мы рассмотрим метод findElements() для поиска нескольких элементов в последующих руководствах.

Шаг 1) Нам нужно импортировать этот пакет для создания объектов веб-элементов.

Введение в WebElement FindElement,FindElements

Шаг 2) Нам нужно вызвать метод findElement(), доступный в классе WebDriver, и получить объект WebElement.

Ниже вы увидите, как это делается.

Selenium Введите текст

Поля ввода относятся к любому из этих двух типов:

  1. Текстовые поля– Selenium текстовые поля ввода, которые принимают введенные значения и отображают их такими, какие они есть.
  2. Поля для пароля– текстовые поля, которые принимают введенные значения, но маскируют их серией специальных символов (обычно точек и звездочек), чтобы избежать отображения конфиденциальных значений.

    Selenium Введите текст

Локаторы

Метод findElement() принимает один параметр, который является локатором элемента. Различные локаторы, такие как By.id(), By.name(), By.xpath(), By.CSSSelector() и т. д., определяют местонахождение элементов на странице, используя их свойства, такие как «»» id, имя или путь и т. д.

Вы можете использовать плагины, такие как Fire path, чтобы получить помощь с получением идентификатора, xpath и т. д. элементов.

Использование примера сайта https://demo.guru99.com/test/login.html Ниже приведен код для поиска текстового поля «Адрес электронной почты» с использованием локатора идентификатора и поля «Пароль» с использованием локатора имени.

Локаторы

  1. Текстовое поле электронной почты расположено по идентификатору
  2. Поле пароля расположено по имени

отправить ключи в Selenium

sendkeys() в Selenium — это метод, используемый для ввода редактируемого содержимого в поля текста и пароля во время выполнения теста. Эти поля идентифицируются с помощью локаторов, таких как имя, класс, идентификатор и т. д. Этот метод доступен в веб-элементе. В отличие от метода type, метод sendkeys() не заменяет существующий текст ни в одном текстовом поле.

Как ввести текст в Selenium

Чтобы ввести текст в текстовые поля и поля пароля, sendKeys() — это метод, доступный в веб-элементе в Selenium.

Используя тот же пример https://demo.guru99.com/test/login.html сайте, вот как мы находим поля «Текст» и «Пароль» и вводим текст в Selenium.

Текст в Selenium

  1. Найдите текстовое поле «Адрес электронной почты», используя локатор идентификатора.
  2. Найдите поле «Пароль» с помощью локатора имени.
  3. Введите текст в поле «Адрес электронной почты» с помощью Selenium метод sendkeys.
  4. Введите пароль в поле «Пароль», используя метод sendKeys().

Удаление значений во входных данных Boxes

Команда Чисто() Метод используется для удаления текста в поле ввода. Этот метод не нуждается в параметре. Приведенный ниже фрагмент кода очистит текст из полей «Электронная почта» или «Пароль».

Удаление значений во входных данных Boxes

Selenium Нажмите кнопки

Команда Selenium Доступ к кнопке click можно получить с помощью метода click().

В приведенном выше примере

  1. Найдите кнопку для входа
  2. Нажмите кнопку «Войти» на странице входа на сайт, чтобы войти на сайт.

Selenium Нажмите кнопки

Selenium Кнопки отправки

Кнопки отправки используются для отправки всей формы на сервер. Мы можем либо использовать метод click() для веб-элемента, как обычную кнопку, как мы делали выше, либо использовать метод submit() для любого веб-элемента в форме или для самой кнопки отправки.

Selenium Кнопки отправки

Когда используется submit(), WebDriver ищет DOM, чтобы узнать, к какой форме принадлежит элемент, а затем запускает функцию отправки.

Полный код

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

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();					
        		
        String baseUrl = "https://demo.guru99.com/test/login.html";					
        driver.get(baseUrl);					

        // Get the WebElement corresponding to the Email Address(TextField)		
        WebElement email = driver.findElement(By.id("email"));							

        // Get the WebElement corresponding to the Password Field		
        WebElement password = driver.findElement(By.name("passwd"));							

        email.sendKeys("abcd@gmail.com");					
        password.sendKeys("abcdefghlkjl");					
        System.out.println("Text Field Set");					
         
        // Deleting values in the text box		
        email.clear();			
        password.clear();			
        System.out.println("Text Field Cleared");					

        // Find the submit button		
        WebElement login = driver.findElement(By.id("SubmitLogin"));							
                    		
        // Using click method to submit form		
        email.sendKeys("abcd@gmail.com");					
        password.sendKeys("abcdefghlkjl");					
        login.click();			
        System.out.println("Login Done with Click");					
        		
        //using submit method to submit the form. Submit used on password field		
        driver.get(baseUrl);					
        driver.findElement(By.id("email")).sendKeys("abcd@gmail.com");							
        driver.findElement(By.name("passwd")).sendKeys("abcdefghlkjl");							
        driver.findElement(By.id("SubmitLogin")).submit();					
        System.out.println("Login Done with Submit");					
         
		//driver.close();		
        		
    }		
}

УСТРАНЕНИЕ НЕПОЛАДОК

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

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

Итого

  • В таблице ниже приведены команды для доступа к каждому типу элементов, обсуждавшихся выше.
Элемент Command Описание
вход Box sendKeys () используется для ввода значений в текстовые поля
Чисто() используется для очистки текстовых полей от текущего значения
Ссылки нажмите () используется для нажатия на ссылку и ожидания завершения загрузки страницы, прежде чем перейти к следующей команде.
Разместить кнопку представить()
  • WebDriver позволяет выбирать более одного параметра в нескольких элементах SELECT.
  • Вы можете использовать метод submit() для любого элемента формы. WebDriver автоматически активирует функцию отправки формы, к которой принадлежит этот элемент.