using variables in place of control and value pywinauto

[亡魂溺海] 提交于 2019-12-14 04:22:41

问题


How to use variables in place of list of properties (controls=values) to identify the objects? I'm trying to achieve something like below giving me error, "Can't assign to function call"

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

回答1:


You only want to replace the value "103" in your originally working code, so that's the really the only part you should change.

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



回答2:


something like below. i need to pass both control and value from external files, hence wanted to use variables in place of both.

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


来源:https://stackoverflow.com/questions/54228094/using-variables-in-place-of-control-and-value-pywinauto

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!