Как заставить selenium выбрать одну из кнопок с одинаковыми атрибутами?
На сайте где я пытаюсь провести тесты есть 2 кнопки, которые ведут на одну и ту же страницу, но мне нужно проверить именно определённую кнопку (чтобы она вела на ту же страницу). Однако т.к. selenium выбирает первую попавшуюся по шаблону кнопку, выбирается та, что на втором скрине, а мне нужна та, что на первом скрине. Какой для этого нужно использовать шаблон?
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Chrome()
@pytest.fixture
def browser():
global driver
yield driver
driver.quit()
def test_scenario_1(browser):
# Шаг 1: Переход на https://sbis.ru/ в раздел "Контакты"
browser.get("https://sbis.ru/")
contacts_link = browser.find_element(By.LINK_TEXT, "Контакты").click()
# Шаг 2: Поиск баннера Тензор и клик по нему
tensor_banner = browser.find_element(By.CLASS_NAME, "sbisru-Contacts__logo-tensor").click()
windows = browser.window_handles
browser.switch_to.window(windows[1])
# Шаг 3: Переход на https://tensor.ru/
assert browser.current_url == "https://tensor.ru/", "Страница tensor.ru не загрузилась"
browser.implicitly_wait(5)
# Шаг 4: Проверка наличия блока "Сила в людях"
block_title = browser.find_element(By.CLASS_NAME, "tensor_ru-Index__block4-bg")
assert block_title.is_displayed(), "Блок 'Сила в людях' отсутствует"
# Шаг 5: Переход в блоке "Подробнее" и проверка открытия https://tensor.ru/about
podrobnee_link = driver.find_element(By.CSS_SELECTOR, '[href="/about"]').click()
assert browser.current_url == "https://tensor.ru/about", "tensor.ru/about не загрузился"
sleep(5)
Ответы (1 шт):
Автор решения: Morgrime
→ Ссылка
Оказалось что надо проскроллить вниз до элемента, пока он не будет виден.

