Вопрос мне не до конца понятен, честно. Все зависит, где должна использоваться структура items_of_up_menu. Но могу предположить что можно сделать через замыкание.
Например реализация через замыкание:
def test_clicking_menu(driver):
# something before
items_of_up_menu = {
'point1':driver.find_element_by_xpath(".//*[@id='navigation']/div/ul/li[1]/a"),
'point2':driver.find_element_by_xpath(".//*[@id='navigation']/div/ul/li[2]/a"),
'point3':driver.find_element_by_xpath(".//*[@id='navigation']/div/ul/li[3]/a"),
'point4':driver.find_element_by_xpath(".//*[@id='navigation']/div/ul/li[4]/a")
}
def click_up_menu(driver):
# do something with item items_of_up_menu['point1']
pass
click_up_menu() # function execution call
# do something with items_of_up_menu['point1']
Или возможно структуру данных надо будет сохранить где-то в экземпляре класса:
Ну и конечно надо избавляться от плохого кода, т.е. дубликатов, четко видно что все локаторы поддаются какому-то одному принципу, поэтому код можно оптимизировать следующим образом.