我是一个蟒蛇& pywinauto新手并试图为Windows应用程序制作脚本。但是脚本在执行文件(" python test.py")和cmd中的工作方式不同。
这是代码。
checkout([ $class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [[
$class: 'MessageExclusion', excludedMessage: '.*skip-?ci.*'
]],
submoduleCfg: [],
userRemoteConfigs: [[
credentialsId: 'xxx', url: 'git@github.com:$ORG/$REPO.git'
]]
])
当我将这个脚本作为文件(python test.py)运行时,我得到的错误就像链接一样。 enter image description here
当我在CMD中逐个运行脚本时,没有错误。它工作正常。 enter image description here
这两种方式有什么区别?执行自动化脚本的最佳方法是什么?
仅供参考,我使用的是python 3.6和pywinauto 0.6.4
先谢谢您的帮助!
答案 0 :(得分:0)
这是典型的计时问题(由于手动步骤执行之间存在延迟,因此无法逐步重现)。 roomdlg.Connect.click()
等待现有的“连接”按钮,但不等待启用状态。所以错误信息是有意义的。
解决方案应该是:
roomdlg.Connect.wait("enabled") # timeout is optional param, default is 5 sec.
roomdlg.Connect.click()
即使按钮已启用,某些应用可能会遇到延迟OnClick()
处理程序订阅等问题。在这种情况下,您可能需要app.wait_cpu_usage_lower()
来指示应用进程CPU使用率低于阈值。
关于时间安排的当前文档在这里:https://pywinauto.readthedocs.io/en/latest/wait_long_operations.html(需要扩展全局时序设置)。