从批处理文件向Jython/Python传递参数

0 投票
1 回答
808 浏览
提问于 2025-04-18 13:45

我写了一个Sikuli脚本(用Jython语言)来测试一个网页。这个脚本里面有多个测试,也就是说,如果其中一个测试被终止了,后面的测试就不会执行了。为了修复这个问题,我想通过一个批处理文件来分别调用每个测试。目前的设置大致是这样的:

tests = [test1, test2, test3, test4]

for test in tests:
  run test

显然,这只是一个简化的版本……所以我想把这个测试列表转换成4个批处理文件。第一个批处理文件会调用脚本,并传入test1作为参数;第二个批处理文件会传入test2作为参数,依此类推。然后我可以再创建一个批处理文件来循环执行这些测试。不过,我不知道怎么在批处理文件和Jython之间进行沟通,除了直接运行脚本以外。

这个问题涉及到批处理文件和Jython脚本,我猜想在每个文件中都需要做一些特别的处理。

任何帮助都非常感谢。

谢谢。

1 个回答

0

这个问题对我来说不是特别清楚。我猜这就是答案:

首先,你需要通过--args选项将一些参数传递给从批处理文件启动的Sikuli脚本,比如:

YourPath\runIDE.cmd -r YourPath\YourScript.sikuli --args test1 test2 someOtherOption

其次,你必须在脚本中使用sys.argv变量来接收这些参数。在Python或Jython中都是一样的。代码示例:

import sys
print sys.argv

for a in sys.argv:
    if a=="test1":
        print "Do something"
    elif a=="test2":
        print "Do something else"

https://docs.python.org/2/library/sys.html#sys.argv

撰写回答