Учебники

Селен — Локаторы

Поиск элементов в Selenium WebDriver выполняется с помощью методов findElement () и findElements (), предоставляемых классами WebDriver и WebElement.

  • findElement () возвращает объект WebElement на основе заданных критериев поиска или в результате выдает исключение, если не находит ни одного элемента, соответствующего критериям поиска.

  • findElements () возвращает список веб-элементов, соответствующих критериям поиска. Если элементы не найдены, возвращается пустой список.

findElement () возвращает объект WebElement на основе заданных критериев поиска или в результате выдает исключение, если не находит ни одного элемента, соответствующего критериям поиска.

findElements () возвращает список веб-элементов, соответствующих критериям поиска. Если элементы не найдены, возвращается пустой список.

В следующей таблице перечислены все синтаксисы Java для поиска элементов в Selenium WebDriver.

метод Синтаксис Описание
По идентификатору driver.findElement (By.id (<идентификатор элемента>)) Находит элемент, используя атрибут ID
По имени driver.findElement (By.name (<имя элемента>)) Находит элемент, используя атрибут Name
По названию класса driver.findElement (By.className (<element class>)) Находит элемент, используя атрибут Class
По имени тега driver.findElement (By.tagName (<htmltagname>)) Находит элемент, используя тег HTML
По тексту ссылки driver.findElement (By.linkText (<linktext>)) Находит ссылку, используя текст ссылки
Частичным текстом ссылки driver.findElement (By.partialLinkText (<linktext>)) Находит ссылку, используя частичный текст ссылки
По CSS driver.findElement (By.cssSelector (<селектор css>)) Находит элемент с помощью селектора CSS
По XPath driver.findElement (By.xpath (<xpath>)) Находит элемент, используя запрос XPath

Использование локаторов

Теперь позвольте нам понять практическое использование каждого из методов локатора с помощью https://www.calculator.net

По идентификатору

Здесь объект доступен с помощью идентификаторов. В данном случае это идентификатор текстового поля. Значения вводятся в текстовое поле с помощью метода sendkeys с помощью идентификатора (cdensity).

Selenium IDE 84

driver.findElement(By.id("cdensity")).sendKeys("10");

По имени

Здесь объект доступен с помощью имен. В данном случае это имя текстового поля. Значения вводятся в текстовое поле с помощью метода sendkeys с помощью идентификатора (cdensity).

Селен IDE 85

driver.findElement(By.name("cdensity")).sendKeys("10");

По имени класса

Здесь доступ к объекту осуществляется с помощью имен классов. В данном случае это имя класса WebElement. Значение может быть доступно с помощью метода gettext.

Селен IDE 86

List<WebElement> byclass = driver.findElements(By.className("smalltext smtb"));

По имени тега

Имя тега DOM элемента можно использовать для поиска этого конкретного элемента в WebDriver. С помощью этого метода очень легко обрабатывать таблицы. Посмотрите на следующий код.

WebElement table = driver.findElement(By.id("calctable"));
List<WebElement> row = table.findElements(By.tagName("tr"));
int rowcount = row.size();

По тексту ссылки

Этот метод помогает найти элемент ссылки с соответствующим видимым текстом.

Selenium IDE 87

driver.findElements(By.linkText("Volume")).click();

Частичным текстом ссылки

Этот метод помогает найти элемент ссылки с частичным совпадением видимого текста.

Selenium IDE 87

 . Driver.findElement (By.partialLinkText ( "Volume")) нажмите ();

По CSS

CSS используется как метод идентификации веб-объекта, однако НЕ все браузеры поддерживают идентификацию CSS.

WebElement loginButton = driver.findElement(By.cssSelector("input.login"));

По XPath

XPath обозначает язык путей XML. Это язык запросов для выбора узлов из XML-документа. XPath основан на древовидном представлении документов XML и предоставляет возможность перемещаться по дереву, выбирая узлы, используя различные критерии.

Selenium IDE 88