счетчик вызова функции 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)