使用变量代替控制和值pywinauto

时间:2019-01-17 02:20:26

标签: python pywinauto

如何使用变量代替属性列表(控件=值)来标识对象?我正在尝试实现如下所示的错误提示:“无法分配给函数调用”

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("target_combo_box_property", action='store_true')
    parser.add_argument("target_combo_box_value", type=int)
    parser.add_argument("target_searched_string")

    args = parser.parse_args()    
    app = Application(backend='win32').connect(path="app.exe")
    findWindow=app.Find
    fieldDrpDwn = findWindow.child_window(args.target_combo_box_property=args.target_combo_box_value)    
    select_combo_box_item(fieldDrpDwn, args.target_searched_string) 

if __name__ == '__main__':
    main()

2 个答案:

答案 0 :(得分:1)

您只想在原始工作代码中替换值“ 103”,因此,这实际上是您唯一需要更改的部分。

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("target_combo_box_property", action='store_true')
    parser.add_argument("target_combo_box_value", type=int)
    parser.add_argument("target_searched_string")

    args = parser.parse_args()    
    app = Application(backend='win32').connect(path="app.exe")
    findWindow = app.Find
    fieldDrpDwn = findWindow.child_window(control_id=args.target_combo_box_value)    
    select_combo_box_item(fieldDrpDwn, args.target_searched_string) 

if __name__ == '__main__':
    main()

答案 1 :(得分:0)

类似下面的东西。我需要通过外部文件传递控制权和价值,因此想使用变量代替两者。

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("target_combo_box_property", action='store_true')
    parser.add_argument("target_combo_box_value", type=int)
    parser.add_argument("target_searched_string")

    args = parser.parse_args()    
    app = Application(backend='win32').connect(path="app.exe")
    findWindow = app.Find
    *fieldDrpDwn = findWindow.child_window(**variable=variable**)*    
    select_combo_box_item(fieldDrpDwn, args.target_searched_string) 

if __name__ == '__main__':
    main()