WebElement в Selenium: текстBox, Кнопка, sendkeys(), клик()

WebElement в Selenium

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

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

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

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

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

Веб-драйвер предоставляет следующие возможностиwing два метода WebElement для поиска элементов.

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

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

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

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

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

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

Текст ввода селена

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

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

    Текст ввода селена

Локаторы

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

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

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

Локаторы

  1. Email текстовое поле расположено по идентификатору
  2. Поле пароля расположено по имени

sendkeys в Selenium

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

Как вводить текст в Selenium

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

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

Текст в Selenium

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

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

Чисто() метод используется для удаления текста во входных данных box. Этот метод не нуждается в параметре. Фрагмент кода ниже очистит текст от Email или поля пароля

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

Кнопки Selenium Click

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

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

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

Кнопки Selenium Click

Кнопки отправки 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(), которые более надежны, но обычноplex пути.
  4. Иногда это также может быть проблема с ожиданием, например, веб-драйвер выполнил ваш код еще до полной загрузки страницы и т. д.
  5. Добавьте ожидание перед findElement(), используя неявное или явное ожидание.

Итоги

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