Поиск элементов в 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).
driver.findElement(By.id("cdensity")).sendKeys("10");
По имени
Здесь объект доступен с помощью имен. В данном случае это имя текстового поля. Значения вводятся в текстовое поле с помощью метода sendkeys с помощью идентификатора (cdensity).
driver.findElement(By.name("cdensity")).sendKeys("10");
По имени класса
Здесь доступ к объекту осуществляется с помощью имен классов. В данном случае это имя класса WebElement. Значение может быть доступно с помощью метода gettext.
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();
По тексту ссылки
Этот метод помогает найти элемент ссылки с соответствующим видимым текстом.
driver.findElements(By.linkText("Volume")).click();
Частичным текстом ссылки
Этот метод помогает найти элемент ссылки с частичным совпадением видимого текста.
. Driver.findElement (By.partialLinkText ( "Volume")) нажмите ();
По CSS
CSS используется как метод идентификации веб-объекта, однако НЕ все браузеры поддерживают идентификацию CSS.
WebElement loginButton = driver.findElement(By.cssSelector("input.login"));
По XPath
XPath обозначает язык путей XML. Это язык запросов для выбора узлов из XML-документа. XPath основан на древовидном представлении документов XML и предоставляет возможность перемещаться по дереву, выбирая узлы, используя различные критерии.