CoderCastrov logo
CoderCastrov
Парсер

Как найти веб-элементы в VBA с использованием библиотеки Selenium

Как найти веб-элементы в VBA с использованием библиотеки Selenium
просмотров
3 мин чтение
#Парсер

Хотите научиться находить веб-элементы на любом веб-сайте в VBA с использованием Selenium? Этот блог обязательно поможет вам научиться этому. Итак, приступим.

Введение

В мире веб-автоматизации Selenium стал неотъемлемым инструментом как для тестировщиков, так и для разработчиков. Он позволяет автоматизировать тестирование и взаимодействие с веб-приложениями, что делает его мощным инструментом в области обеспечения качества и веб-разработки.

При работе с Selenium в VBA (Visual Basic for Applications) одним из ключевых понятий, которое следует понять, являются локаторы веб-элементов. Эти локаторы служат мостом между вашим кодом VBA и элементами на веб-странице, с которыми вы хотите взаимодействовать.

Для практики и запуска приведенного ниже кода вам необходимо установить библиотеку Selenium Type в VBA. Для этого следуйте инструкциям в блоге Как установить Selenium Webdriver для VBA в Windows.

После успешной установки Selenium и ChromeDriver для VBA используйте следующий код для создания нового объекта Chrome webdriver и открытия веб-сайта https://www.kushalstudy.com/.

Sub OpenBrowser()
    Dim driver As New WebDriver
    driver.Start "chrome"
    driver.Get " https://www.kushalstudy.com/"
End Sub

Методы для поиска веб-элементов

Локаторы веб-элементов - это в основном указатели или идентификаторы, которые помогают Selenium находить и взаимодействовать с конкретными элементами на веб-странице. Эти элементы могут быть кнопками, полями ввода, ссылками, флажками или любыми другими элементами HTML. Поскольку веб-страницы структурированы с использованием HTML, каждому элементу присваиваются различные атрибуты, которые можно использовать для их уникальной идентификации.

Существует несколько типов локаторов, которые можно использовать для нахождения элементов:

1. Локатор по идентификатору (ID)

HTML-элемент может иметь атрибут id, который является уникальным на странице. Это делает его очень надежным локатором. В VBA вы можете использовать метод FindElementById() для поиска элементов по их идентификатору.

Пример: Мы хотим найти элемент, у которого есть идентификатор с атрибутом main, как показано на изображении ниже.

Пример

Код VBA для извлечения внутреннего HTML внутри этого элемента выглядит следующим образом:

Dim allHtml As String
allHtml = driver.FindElementById("main").Attribute("innerHTML")

2. Локатор по имени

Если элементы имеют атрибут name, вы можете использовать этот атрибут для их поиска. В VBA вы бы использовали метод FindElementByName().

'Найти элемент по имени и добавить некоторый текст
driver.FindElementByName("name").SendKeys "myusername"

Для поиска нескольких элементов с использованием атрибута name используйте метод FindElementsByName().

driver.FindElementsByName("name")

3. Локатор по имени класса

Элементы с атрибутом class могут быть найдены с использованием этого локатора. Метод FindElementByClassName() может быть использован для поиска элементов с использованием этого метода.

Dim blogTitle As String
blogTitle = driver.FindElementByClass("wp-block-post-title").Attribute("innerText")

Если вы хотите получить несколько элементов с одним и тем же именем класса, вы можете использовать метод FindElementsByClassName(), как показано в следующем коде:

driver.FindElementsByClass("wp-block-post-title")

4. Локатор по имени тега

Этот локатор находит элементы по их HTML тегу, таким как div, input, a и т.д. В VBA вы можете использовать метод FindElementByTagName() для поиска элементов.

Dim blogTitle As String
blogTitle = driver.FindElementByTag("h5").Attribute("innerText")

Если вы хотите получить несколько элементов с одним и тем же именем тега, вы можете использовать метод FindElementsByTagName(), как показано в следующем коде:

driver.FindElementsByTag("h5")

5. Локатор XPath

XPath (XML Path Language) - это мощный язык, используемый для навигации по XML-документам. В Selenium вы можете использовать выражения XPath для поиска элементов на основе их атрибутов и отношений в структуре HTML. Используйте метод FindElementByXPath() для поиска элемента.

Dim blogTitle As String
blogTitle = driver.FindElementByXPath("//h5[contains(@class, 'wp-block-post-title')]").Attribute("innerText") 

Если вы хотите получить несколько элементов с одним и тем же именем XPath, вы можете использовать метод FindElementsByXPath(), как показано в следующем коде:

driver.FindElementsByXPath("//h5[contains(@class, 'wp-block-post-title')]")

6. Локатор CSS Selector

Аналогично XPath, CSS селекторы используются для выбора элементов на основе их атрибутов и отношений, но с использованием синтаксиса CSS. Используйте метод FindElementByCss() для поиска элемента.

Dim blogTitle As String
blogTitle = driver.FindElementByCss("h5[class*='wp-block-post-title']").Attribute("innerText"

Если вы хотите получить несколько элементов с одним именем CSS, вы можете использовать метод FindElementsByCss(), как показано в следующем коде:

driver.FindElementsByCss("h5[class*='wp-block-post-title']")

Различные методы взаимодействия с элементами

При использовании Selenium с VBA для взаимодействия с веб-элементами вы можете использовать различные методы для выполнения действий, таких как нажатие кнопок, ввод текста, получение атрибутов элемента и многое другое. Вот список часто используемых методов и свойств для взаимодействия с элементами:

Читать далее