Функция Squish ActivateMenuItem

Итак, я унаследовал немного кода для squish и действительно не имею никакого руководства по программе вообще, кроме того, что я могу найти в Интернете, так что это может быть простой проблемой...

У меня есть функция delete_fixture, которая показана здесь и относится к функции activMenuItem, показанной позже... Что происходит, когда щелкают меню редактирования, но, похоже, ничего больше не щелкают, и не появляется всплывающее окно об удалении, для чего тест. Мне просто интересно, может ли кто-нибудь увидеть в этом вопиющую ошибку или я могу получить какое-то руководство, заранее спасибо.

def delete_fixture(name, confirm=True):
   click_data_tab("Fixtures")
   click_fixture(name)
   activateMenuItem("Edit", "Delete")
   if confirm:
       mouseClick(waitForObject("{text='OK' type='QPushButton' visible='1'}"))
   else:
       mouseClick(waitForObject("{text='Cancel' type='QPushButton' visible='1'}"))


def activateMenuItem(*menuPath):
   snooze(1)
   menu = "{type='QMenuBar' visible='true'}"
   parent = "{name='MainWindow' type='MainWindow'}"
   try:
       waitForObject(parent)
       for item in menuPath[:-1]:
           activateItem(waitForObjectItem(menu, item))
           menu = "{title='%s' type='QMenu' visible='1' window=%s}" % (item, parent)
           parent = menu
       activateItem(waitForObjectItem(menu, menuPath[-1]))
   except LookupError as e:
       test.log("Unable to find main window: %s" % HOST_NAME)
       raise LookupError("%s -- %s" % (HOST_NAME,e))

person seanscal    schedule 16.07.2014    source источник


Ответы (2)


Попробуйте использовать первый аргумент *menu_path как объект (например, :menu_bar ), а затем остальные аргументы как строки. Это сработало для меня.

person Shwetha Durgashankar    schedule 02.04.2015

Похоже, что activateMenuItem ожидает, что menuPath является списком, но распаковывает аргументы.

Попробуйте изменить

def activateMenuItem(*menuPath):

to

def activateMenuItem(menuPath):
person Frerich Raabe    schedule 26.11.2014