Поиск элемента по локатору с индексом

На сайте есть несколько подборок с одинаковым id, не могу понять где правильно расположить индекс, чтобы осуществлять поиск по нему

from BaseApp import BasePage
from selenium.webdriver.common.by import By

#Локаторы
class Locators:
    LOCATOR_COLLECTION1 = (By.XPATH , '//a[@id="collection_link"]')[1]

#Поиск элементов
class SearchHelper(BasePage):

    #Поиск коллекции горячая подборка
    def click_button_collection1(self):
        search_field = self.find_element(Locators.LOCATOR_COLLECTION1)
        search_field.click()

Выводится ошибка

FAILED test.py::test_collection - TypeError: WebDriver.find_element() takes from 1 to 3 
positional arguments but 27 were given

Ответы (2 шт):

Автор решения: Namerek

Вы в функцию вместо двух параметров пытаетесь передать второй элемент кортежа, являющийся строкой из 27 символов.

from BaseApp import BasePage
from selenium.webdriver.common.by import By

#Локаторы
class Locators:
    LOCATOR_COLLECTION1 = By.XPATH , '//a[@id="collection_link"]'

#Поиск элементов
class SearchHelper(BasePage):

    #Поиск коллекции горячая подборка
    def click_button_collection1(self):
        search_field = self.find_element(*Locators.LOCATOR_COLLECTION1)
        search_field.click()

P.S. Не гарантирую, что вышеописанное заставит ваш код выполнять то, что Вы задумали, но конкретную ошибку, описанную в вопросе, исправит.

→ Ссылка
Автор решения: Alexandr

Решил таким способом:

from BaseApp import BasePage
from selenium.webdriver.common.by import By

#Локаторы
class Locators:
    LOCATOR_COLLECTION = (By.XPATH , '//a[@id="collection_link"]')

#Поиск элементов
class SearchHelper(BasePage):

#Поиск коллекции горячая подборка
    def click_button_collection1(self):
        search_field = self.find_elements(Locators.LOCATOR_COLLECTION)[0]
        search_field.click()
→ Ссылка