You are currently viewing Поиск нескольких элементов в Selenium Python

Поиск нескольких элементов в Selenium Python

Стратегии локаторов в 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