Веб-элемент в Selenium
⚡ Умное резюме
Веб-элемент в Selenium представляет каждый элемент управления формы как программируемый объект, позволяя тестировщикам взаимодействовать с текстовыми полями, флажками, переключателями и элементами отправки, используя методы findElement, sendKeys, click, clear и submit. Java примеры кода.

Веб-элемент в Selenium
Формы — это основные элементы веб-интерфейса, которые собирают информацию от посетителей сайта. Веб-формы включают в себя различные элементы управления графического интерфейса пользователя, такие как текстовые поля, поля для ввода пароля, флажки, переключатели, выпадающие списки и поля для ввода файлов.
В этом руководстве объясняется, как получить доступ к каждому элементу формы с помощью Selenium Вебдрайвер с Java. Selenium инкапсулирует каждый элемент формы как объект WebElement. Он предоставляет API для поиска элементов и выполнения с ними действий, включая ввод текста, нажатие кнопок и отправку форм. В разделах ниже описаны методы, доступные для каждого элемента формы.
Введение в WebElement, findElement(), findElements()
Selenium WebDriver представляет собой простой элемент формы в виде объекта веб-элемент.
WebDriver идентифицирует элементы формы, используя различные свойства веб-элемента, включая ID, Name, Class. XPath, имя тега, CSS-селекторы и текст ссылки.
WebDriver предоставляет следующие два метода WebElement для поиска элементов:
- найтиЭлемент() – находит отдельный веб-элемент и возвращает его в виде объекта WebElement. Selenium объект.
- найтиЭлементы() – возвращает список объектов WebElement, соответствующих критериям локатора.
В приведенном ниже примере показано, как получить один элемент — текстовое поле на веб-странице — в виде объекта WebElement с помощью метода findElement(). Метод findElements() для поиска нескольких элементов рассматривается в последующих уроках.
Шаг 1) Импортируйте пакет, необходимый для создания объектов WebElement.
Шаг 2) Для получения объекта WebElement вызовите метод findElement() класса WebDriver, как показано ниже.
Selenium Введите текст
Поля ввода относятся к любому из этих двух типов:
- Текстовые поля – Selenium Текстовые поля ввода, которые принимают введенные значения и отображают их точно так, как они были введены.
- Поля для пароля – текстовые поля, которые принимают введенные значения, но маскируют их под последовательность специальных символов (обычно точек или звездочек), чтобы скрыть конфиденциальную информацию.
Локаторы
Метод findElement() принимает один параметр — локатор, указывающий на элемент. Различные локаторы, включая By.id(), By.name(), By.xpath() и By.cssSelector(), находят элементы на странице, используя их свойства, такие как id, name или path.
Для получения идентификатора, XPath и других значений локаторов элементов можно использовать такие плагины, как FirePath.
Использование примера сайта https://demo.guru99.com/test/login.htmlПриведённый ниже код находит текстовое поле «Адрес электронной почты», используя идентификатор, и поле «Пароль», используя имя.
- Поле для ввода адреса электронной почты находится по идентификатору.
- Поле для ввода пароля расположено по имени.
отправить ключи в Selenium
sendKeys() в Selenium Метод sendKeys() используется для ввода редактируемого содержимого в текстовые поля и поля ввода пароля во время выполнения теста. Эти поля идентифицируются с помощью таких локаторов, как name, class и id. Метод доступен для объекта WebElement. В отличие от метода type, sendKeys() не заменяет существующий текст в текстовом поле.
Как ввести текст в Selenium
Для ввода текста в текстовые поля и поля для ввода пароля доступен метод sendKeys(), реализующий интерфейс WebElement. Selenium.
Используя тот же пример https://demo.guru99.com/test/login.htmlПриведённый ниже фрагмент кода находит текстовое поле и поле для пароля и вводит в них текст. Selenium.
- Найдите текстовое поле «Адрес электронной почты», используя идентификатор.
- Найдите поле «Пароль», используя указатель имени.
- Введите текст в поле «Адрес электронной почты» с помощью Selenium метод sendKeys.
- Введите пароль в поле «Пароль», используя метод sendKeys().
Удаление значений во входных данных Boxes
Чисто() Этот метод удаляет текст внутри поля ввода. Этот метод не требует параметра. Приведённый ниже фрагмент кода очищает текст в полях «Электронная почта» и «Пароль».
Selenium Нажмите кнопки
Selenium Кнопке клика можно получить доступ с помощью метода click().
В приведенном выше примере
- Найдите кнопку «Войти».
- Для аутентификации нажмите кнопку «Войти» на странице входа на сайт.
Selenium Кнопки отправки
Кнопки отправки отправляют всю форму на сервер. Вы можете либо вызвать метод click() элемента WebElement, как показано выше, либо использовать метод submit() для любого элемента в форме или для самой кнопки отправки.
При использовании функции submit() WebDriver выполняет поиск в DOM для определения формы, к которой принадлежит элемент, а затем запускает свою функцию submit.
Завершенный Code
Вот полный рабочий код.
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(), это означает, что данный элемент отсутствовал на странице в момент обращения к нему со стороны WebDriver.
- Проверьте правильность указания местоположения с помощью FirePath или функции «Просмотреть элемент» в Chrome.
- Проверьте, отличается ли значение, используемое в коде, от текущего значения элемента, отображаемого в FirePath.
- Некоторые атрибуты являются динамическими для определенных элементов. Если значение изменяется динамически, переключитесь на By.xpath() или By.cssSelector(), которые более надежны, но несколько сложнее в использовании.
- Иногда проблема заключается в условии ожидания; WebDriver может выполнить код до того, как страница загрузится полностью.
- Добавьте ожидание перед findElement(), используя неявное или явное ожидание.
Резюме
- В таблице ниже приведено краткое описание команд для доступа к каждому типу элементов, описанных выше.
| Элемент | Command | Описание |
|---|---|---|
| вход Box | sendKeys () | Используется для ввода значений в текстовые поля. |
| Чисто() | Используется для очистки текстовых полей от их текущего значения. | |
| Ссылки | нажмите () | Используется для перехода по ссылке и ожидания завершения загрузки страницы перед выполнением следующей команды. |
| Разместить кнопку | представить() | Используется для отправки формы путем запуска обработчика отправки родительской формы. |
- WebDriver позволяет выбирать более одного параметра в нескольких элементах SELECT.
- Метод submit() можно использовать для любого элемента внутри формы. WebDriver автоматически запускает функцию submit формы, к которой принадлежит данный элемент.






