Стратегии локаторов в Selenium Python-это методы, которые используются для поиска одного или нескольких элементов на странице и выполнения операций над ними. Модуль Python Селена построен для выполнения автоматического тестирования с помощью Python. Привязки Selenium Python предоставляют простой API для написания функциональных/приемочных тестов с использованием Selenium WebDriver. После установки selenium и проверки – Переход по ссылкам с помощью метода get, возможно, кто-то захочет больше играть с Selenium Python. После открытия страницы с помощью selenium, такой как geeksforgeeks, может потребоваться автоматически нажать некоторые кнопки или автоматически заполнить форму или любую подобную автоматизированную задачу. Эта статья посвящена поиску нескольких элементов в Selenium Python.
Стратегии локатора для определения местоположения нескольких элементов
Selenium Python следует различным стратегиям поиска элементов. Можно найти несколько элементов 7 различными способами. Вот список стратегий поиска селена в python:
ЛОКАТОРЫ | ОПИСАНИЕ |
---|---|
find_element_by_id | Будет возвращен первый элемент со значением атрибута id, соответствующим местоположению. |
find_element_by_name | Будет возвращен первый элемент со значением атрибута name, соответствующим местоположению. |
find_element_by_xpath | Будет возвращен первый элемент с синтаксисом xpath, соответствующим местоположению. |
find_element_by_link_text | Будет возвращен первый элемент со значением текста ссылки, соответствующим местоположению. |
find_element_by_partial_link_text | Будет возвращен первый элемент со значением текста частичной ссылки, соответствующим местоположению. |
find_element_by_tag_name | Будет возвращен первый элемент с заданным именем тега. |
find_element_by_class_name | будет возвращен первый элемент с соответствующим именем атрибута класса. |
find_element_by_css_selector | Будет возвращен первый элемент с соответствующим селектором CSS. |
find_elements_by_name
С помощью этой стратегии будут возвращены все элементы со значением атрибута name, соответствующим местоположению. Если ни один элемент не имеет соответствующего атрибута name, будет вызвано исключение NoSuchElementException.
Синтаксис:
driver.find_elements_by_name("name_of_element")
Пример:
Например, рассмотрим источник этой страницы:
<html>
<body>
<form id="loginForm">
<input name="username" type="text" />
<input name="username" type="username" />
<input name="continue" type="submit" value="Login" />
</form>
</body>
<html>
Теперь, после того как вы создали драйвер, вы можете захватывать элементы с помощью:
elements = driver.find_elements_by_name('username')
Чтобы проверить практическую реализацию, посетите – find_elements_by_name() driver method – Selenium Python
find_elements_by_xpath
С помощью этой стратегии будут возвращены все элементы с шаблоном xpath, соответствующим местоположению. Если ни один элемент не имеет соответствующего атрибута элемента, будет вызвано исключение NoSuchElementException.
Синтаксис:
driver.find_elements_by_xpath("xpath")
Пример:
Например, рассмотрим этот источник страницы:
<html>
<body>
<form id="loginForm">
<input name="username" type="text" />
<input name="password" type="password" />
<input name="continue" type="submit" value="Login" />
</form>
</body>
<html>
Теперь, после того как вы создали драйвер, вы можете захватывать элементы с помощью:
login_form = driver.find_elements_by_xpath("/html/body/form[1]")
login_form = driver.find_elements_by_xpath("//form[1]")
Чтобы проверить практическую реализацию, посетите – find_elements_by_xpath() driver method – Selenium Python
find_elements_by_link_text
С помощью этой стратегии будут возвращены все элементы со значением текста ссылки, соответствующим местоположению. Если ни один элемент не имеет соответствующего атрибута текста ссылки, будет вызвано исключение NoSuchElementException.
Синтаксис:
driver.find_elements_by_link_text("Text of Link")
Пример:
Например, рассмотрим этот источник страницы:
<html>
<body>
<p>Are you sure you want to do this?</p>
<a href="continue.html">Continue</a>
<a href="cancel.html">Cancel</a>
</body>
<html>
Теперь, после того как вы создали драйвер, вы можете захватывать элементы с помощью:
login_form = driver.find_elements_by_link_text('Continue')
Чтобы проверить практическую реализацию, посетите – find_elements_by_link_text() driver method – Selenium Python
find_elements_by_partial_link_text
С помощью этой стратегии будут возвращены все элементы с частичным значением текста ссылки, соответствующим местоположению. Если ни один элемент не имеет соответствующего атрибута текста частичной ссылки, будет вызвано исключение NoSuchElementException.
Синтаксис:
driver.find_elements_by_partial_link_text("Text of Link")
Пример:
Например, рассмотрим этот источник страницы:
<html>
<body>
<p>Are you sure you want to do this?</p>
<a href="continue.html">Continue</a>
<a href="cancel.html">Cancel</a>
</body>
<html>
Теперь, после того как вы создали драйвер, вы можете захватить все элементы с помощью:
login_form = driver.find_elements_by_partial_link_text('Conti')
Чтобы проверить практическую реализацию, посетите – find_elements_by_partial_link_text() driver method – Selenium Python
find_elements_by_tag_name
С помощью этой стратегии будут возвращены все элементы с заданным именем тега. Если ни один элемент не имеет соответствующего имени тега, будет вызвано исключение NoSuchElementException.
Синтаксис:
driver.find_elements_by_tag_name("Tag name")
Пример:
Например, рассмотрим этот источник страницы:
<html>
<body>
<h1>Welcome</h1>
<p>Site content goes here.</p>
</body>
<html>
Теперь, после того как вы создали драйвер, вы можете захватить все элементы с помощью:
login_form = driver.find_elements_by_tag_name('h1')
Чтобы проверить практическую реализацию, посетите – find_elements_by_tag_name() driver method – Selenium Python
find_elements_by_class_name
С помощью этой стратегии будут возвращены первые элементы с соответствующим именем атрибута класса. Если ни один элемент не имеет соответствующего имени атрибута класса, будет вызвано исключение NoSuchElementException.
Синтаксис:
driver.find_elements_by_class_name("class_of_element")
Пример:
Например, рассмотрим этот источник страницы:
<html>
<body>
<p class="content">Site content goes here.</p>
</body>
<html>
Теперь, после того как вы создали драйвер, вы можете захватить все элементы с помощью:
content = driver.find_elements_by_class_name('content')
Чтобы проверить практическую реализацию, посетите – find_elements_by_class_name() driver method – Selenium Python
find_elements_by_css_selector
С помощью этой стратегии будут возвращены все элементы с соответствующим селектором CSS. Если ни у одного элемента нет соответствующего селектора CSS, будет вызвано исключение NoSuchElementException.
Синтаксис:
driver.find_elements_by_css_selector("CSS Selectors")
Пример:
Например, рассмотрим этот источник страницы:
<html>
<body>
<p class="content">Site content goes here.</p>
</body>
<html>
Теперь, после того как вы создали драйвер, вы можете захватить все элементы с помощью:
content = driver.find_elements_by_css_selector('p.content')
Чтобы проверить практическую реализацию, посетите – find_elements_by_css_selector() driver method – Selenium Python