当前位置: 首页 > 知识库问答 >
问题:

用sikuli打开cmd行为不可预测

刘明朗
2023-03-14

我正在尝试对我的软件的GUI进行一些自动测试,并验证一些需要比较导出文件的东西,因为我在命令行中使用了fc。

我需要我的程序和cmd的句柄才能在它们之间切换。不幸的是,Sikuli在调用时表现得非常不可预测

cmd = App("cmd.exe") 

有时它会打开一个新的控制台,有时它会专注于已经从sikuli IDE打开的控制台。

有没有更智能、更健壮的方法来使用控制台和sikuli?

共有1个答案

宓茂才
2023-03-14

是的,应用程序类有时会表现得很滑稽,并且不是百分之百可靠。您可以做的是避免调用实际的cmd窗口,因为它本身会导致混淆。相反,您可以直接从Sikuli脚本运行实际的cmd命令,并将输出读取到变量。例如:

output = run("cmd /C dir")

然后输出变量将包含dir命令的实际输出,就好像您从命令行运行它一样。所以在你的情况下:

output = run("cmd /C fc path1/file1 path2/file2")
 类似资料:
  • 我有一个这样的bat文件: 这会将IP信息打印到屏幕上,但在用户可以读取该信息之前,CMD会自动关闭。 我相信CMD假设脚本已经完成,所以它关闭了。 脚本完成后如何保持CMD打开?

  • 本文向大家介绍使用bat打开多个cmd窗口执行gulp、node,包括了使用bat打开多个cmd窗口执行gulp、node的使用技巧和注意事项,需要的朋友参考一下 一、使用场景 使用场景:项目发布前 操作步骤: 1.执行gulp,对文件进行压缩、合并等操作; 2.在1执行完成后,对1中合并的文件如default.css进行多主题色的自动生成,在这里使用node处理。 问题:手工操作步骤繁琐 打开c

  • 我很难弄明白这一点。 所以我有一个基于Ubuntu映像的dockerfile。在我的dockerfile的末尾,我有: 什么都没发生..docker ps显示没有正在运行的容器 但如果我跑: 容器开始运行,我在shell中,docker ps显示这个容器正在运行。所有工作都按预期进行,但我的django项目不在那里,我的理解是运行/bin/bash会覆盖dockerfile中的CMD,这意味着dj

  • 当我尝试用命令从终端运行sikuli时 java-jar sikuli-setup.jar

  • 我有两台windows服务器:windows server 2003和windows server 2008。 在windows 2008中,当我通过计划任务启动批处理脚本时,它会打开一个可见的CMD窗口,其中包含我的批处理。另一方面,在windows 2003中,当我通过计划任务启动批处理脚本时,它不会打开可见的CMD窗口(与桌面交互不可用?)但我可以看到批处理在后台运行的过程。 有人知道如何激

  • 我想做这样的事情: 项目tests_thing1.sikuli: 并且有类似的类似Tests_Thing2和Tests_Thing3项目