0

所以我继承了一些 squish 的代码,除了我可以在网上搜到的东西之外,真的对这个程序没有任何指导,所以这可能是一个简单的问题......

我有一个函数,delete_fixture,它在这里显示,指的是 activateMenuItem 函数,随后显示...发生的情况是编辑菜单被点击,但它似乎没有点击任何其他内容,也没有弹出关于删除的弹出窗口,这就是测试的目的。我只是想知道是否有人可以看到任何明显的错误,或者我是否可以获得一些指导,在此先感谢。

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))
4

2 回答 2

1

尝试将 的第一个参数*menu_path用作对象(如:menu_bar),然后将其余参数用作字符串。这对我有用。

于 2015-04-02T21:50:13.953 回答
0

activateMenuItem似乎期望这是menuPath一个列表,但它解包了 arguments

尝试改变

def activateMenuItem(*menuPath):

def activateMenuItem(menuPath):
于 2014-11-26T22:34:48.430 回答