счетчик вызова функции python в robot framework

Всем привет! Весьма шапошно знаком с python и robot framework поэтому могу пуаться в терминах. Заранее извиняюсь) Недавно пришел на стажировку в QA отдел одной организации, где присоединился к работе над существующим проектом, поэтому тонкости структуры этого проекта для меня загадка.

Суть впроса такова:

Работаю над тест кейсом в RF, котоый использует в качестве ключевых слов методы написанные на Python. Частью кейса является то, что на странице веб приложения нужно выбрать из списка dropdown элемент, на основании его индекса в этом листе. Я реализовал это с помошью параметра, котоый отправляется в функию при вызове. НО Мне нужно модифицировать эту функцию так, чтобы функция вызывалась без параметров, т.е. чтобы при каждом вызове ключевого слова из ТЕСТ КЕЙСА индекс элемента В ФУНКЦИИ PYTHON увеличивался на 1 Я использовал глобальную переменную ${AccountIndex}=1 в файле Resources/Configuration.robot (там прописаны все глобальные переменные проекта) У меня получилось увеличить индекс на 1 внутри функции, но при повторном вызове он опять равен 1. Выходит, я могу считать значение глобальной переменной, но не могу его переписать.

Подскажите пожалуйста как мне это сделать.

как было:

def fill_final_registration_form(self, index):
    """Filling the values in final account creation form
    By index select the account from list.
    Value of 'index' is from 1 to 6) """

    try:
        self.common_kw.select_from_dropdown_by_index(ACCOUNT_NUMBER_SELECT, index)
        password = self.builtin.get_variable_value("${USER.Password}")
        self.common_kw.input_text(CREATE_A_PASSWORD, password)
        self.common_kw.input_text(CONFIRM_THE_PASSWORD, password)
        self.selenium_lib.click_element(READ_AND_ACCEPT_CHECKBOX)
    except:
        self.selenium_lib.capture_page_screenshot()
        raise AssertionError("Filling registration form failed.")

    self.selenium_lib.click_element(REGISTRATION_CONTINUE_BUTTON)

как стало:

def fill_final_registration_form(self):
    """Filling the values in final account creation form
    By index select the account from list.
    Value of 'index' is from 1 to 6) """

    try:
        account_index = int(self.builtin.get_variable_value("${AccountIndex}")) 
        if account_index in range(7):                    
            self.common_kw.select_from_dropdown_by_index(ACCOUNT_NUMBER_SELECT, str(account_index))
            password = self.builtin.get_variable_value("${USER.Password}")
            self.common_kw.input_text(CREATE_A_PASSWORD, password)
            self.common_kw.input_text(CONFIRM_THE_PASSWORD, password)
            self.selenium_lib.click_element(READ_AND_ACCEPT_CHECKBOX)
            account_index += 1
            self.builtin.set_global_variable("${AccountIndex}", str(account_index))
            #self.builtin.evaluate("${AccountIndex}", "${AccountIndex}+1")
                #self.builtin.set_variable("${AccountIndex} + 1")

        else:
            print("All accounts are already in use. Restoring index to the default value(1)")
            account_index = 1
            self.builtin.set_global_variable("${AccoutIndex}", str(account_index))

    except:
        self.selenium_lib.capture_page_screenshot()
        raise AssertionError("Filling registration form failed.")

    self.selenium_lib.click_element(REGISTRATION_CONTINUE_BUTTON)

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