У Selenium WebDriver локатори є важливими для взаємодії з веб-елементами. XPath та CSS селектори є двома з найбільш потужних та гнучких способів знаходження елементів, і вони часто використовуються в автоматизації тестів.
Ця документація допоможе вам зрозуміти, як використовувати XPath та CSS селектори в Selenium WebDriver з Java, із детальними поясненнями та практичними прикладами коду.
1. XPath в Selenium
Що таке XPath?
XPath (XML Path Language) — це мова запитів, що використовується для навігації по XML-документах. У Selenium вона дозволяє знаходити елементи на веб-сторінці, проходячи по DOM (Document Object Model) на основі різних атрибутів, зв'язків, текстового вмісту та інших умов.
Основний синтаксис XPath
- Абсолютний XPath: Починається від кореневого елемента (
<html>
) і йде до цільового елемента. - Відносний XPath: Починається з будь-якої точки в DOM і є більш гнучким.
Основні функції XPath
@attribute_name
: Вибирає елементи за атрибутом.text()
: Вибирає елементи за їх видимим текстом.contains()
: Знаходить елементи, де атрибут або текст містить певну підстрічку.starts-with()
: Знаходить елементи, де атрибут або текст починаються з певної підстрічки.position()
: Вибирає елементи за їх позицією в наборі.
Приклад використання XPath в Java
2. CSS Селектори в Selenium
Що таке CSS Селектори?
CSS Селектори — це шаблони, які використовуються для вибору елементів на основі їх атрибутів, класів, id та інших властивостей. У Selenium CSS селектори часто використовуються для швидкого знаходження елементів, оскільки вони є компактними та легкими для читання.
Основний синтаксис CSS Селекторів
CSS Селектори можуть вибирати елементи за:
- ID:
#id
- Клас:
.class
- Елемент:
element
- Атрибут:
[attribute='value']
- Потомок/Дитина:
parent child
- Підстрічки атрибутів:
[attribute^='value']
,[attribute$='value']
,[attribute*='value']
Приклад використання CSS Селекторів в Java
Приклади розширених CSS Селекторів
Комбінування CSS Селекторів
Ви можете комбінувати кілька атрибутів в одному CSS Селекторі, щоб точно вибрати елемент.
Знаходження елементів з кількома класами
CSS Селектори можуть співпадати з елементами з кількома класами, якщо їх розділити точкою (.
).
Використання псевдокласів (:nth-of-type
)
Ви можете використовувати псевдокласи для вибору елементів на основі їх позиції відносно інших елементів того ж типу.
3. XPath vs CSS Селектори
Коли використовувати XPath vs CSS Селектори?
XPath потужний і гнучкий. Він дозволяє вам:
- Переміщатися вгору і вниз по DOM.
- Вибирати елементи за їх позицією.
- Використовувати складні функції, такі як
contains()
,starts-with()
таtext()
.
CSS Селектори швидші в більшості випадків і ідеальні для простих селекторів, таких як:
- Знаходження елементів за
id
,class
і атрибутами. - Вони є більш компактними та легкими для читання.
- Браузери можуть виконувати їх швидше, ніж XPath, у багатьох випадках.
4. Висновок
У цій документації ми розглянули основи XPath та CSS Селекторів, а також широкий спектр прикладів в Java щодо того, як їх використовувати з Selenium WebDriver. Обидва є важливими інструментами для ефективного знаходження та навігації по елементах веб-сторінки в ваших тестах Selenium.
Освоївши ці техніки, ви зможете працювати з більш складними веб-сторінками та писати більш надійні й підтримувані скрипти автоматизації.
Щасливого кодування! 🚀
Перекладено з: XPath and CSS Selectors in Selenium: A Comprehensive Java Guide