问题标签 [sikuli-x]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
202 浏览

java - 对于 Sikulix,Mac 上的 App.close() 会关闭应用程序,但返回 false。这个对吗?

我正在用 Java 构建一个SikuliX自动化脚本,并且对该.close()方法的行为感到困惑。在Sikuli的App类里面,close方法如下:

对我来说,有问题的部分是回报。我的理解是,由于它返回一个布尔值,因此如果关闭成功则为真,如果关闭失败则为假。但是,此代码的作用相反。基于我对这个逻辑有缺陷(?)的理解,我最初是这样编写代码的,

这与我想要的结果相反,因为应用程序成功关闭,但测试失败,因为正在打印“未关闭”。

我是否发现了一个错误,或者我错过了什么?

谢谢。

0 投票
1 回答
164 浏览

character-encoding - SikuliX IDE 使用虚线字符

我使用带有 Ruby 脚本的 SikuliXIDE 1.1.4-SNAPSHOT 并有字符串,其中包含以下虚线字符:áéöüóőúű. 我尝试使用paste()方法将它放到一个字段中。

我找到了解决方案 ALT 键代码,但我不知道这些字符在字符串中的位置。我找到paste(unicode())了方法,但它在最新的 SNAPSHOT 版本中不存在。

0 投票
0 回答
441 浏览

python - 如何通过 Python 脚本运行 sikuli 脚本

我想通过 Python IDLE 运行 sikulixIDE-1.1.3 生成的脚本,但不知道如何添加 Python 脚本。

我使用 sikuliXIDE-1.1.3 生成了文件 sikuli_script.sikuli。通过 Python IDLE,我打开了应用程序,但下一步是我想调用这个 sikuli 脚本但不知道如何添加它。

它应该运行 sikuli 脚本,但我知道我以错误的方式调用。有什么帮助吗?

0 投票
1 回答
830 浏览

sikuli - 应用程序打开在 sikuli 中打开多个窗口

大家好,我喜欢这个 sikuli,但我发现了一个与 app.open 和 app.focus 相关的问题

这是我的代码我的代码有单行来测试wheater app.open 或焦点打开单个实例

app.open 和 app.focus 都多次打开资源管理器,例如:-假设没有任何资源管理器在第一个 app.open 上打开或将其集中打开资源管理器现在重新运行代码它再次打开资源管理器,即现在我有资源管理器实例

预计检查多个资源管理器实例是否打开然后关闭所有并打开单个实例,如果单个打开则只关注它是否有其他选择

0 投票
1 回答
81 浏览

python-3.x - 如何将 cx_Oracle 库导入 python SikuliX 脚本

我正在尝试将cx_Oracle库导入我的 Python 测试脚本里面sikulix,但是我收到了这个错误:

[错误] 脚本 [ connect_and_print ] 在 --unknown-- 行停止并出现错误 [错误] 错误原因:回溯(最后一次调用):文件“C:\Users\BRX Retail\Desktop\Testes_automatic\connect_and_print.sikuli\ connect_and_print.py",第 3 行,在 import cx_Oracle ImportError: No module named cx_Oracle

这是我的代码:

你们有什么想法吗?

0 投票
1 回答
1439 浏览

java - 如何解决此 UnsatisfiedLinkError?

早上好,

今天,我从 SikuliX 和 Java 的 POC 开始。我想试试这个链接中的例子。这里屏幕的一部分被捕获和搜索。

当我执行此操作时,我收到错误:

我将添加到我的 POM.XML。但这没有帮助。

我使用了错误的库吗?

一些附加信息:我在 Ubuntu 18.10 机器上使用 Intellij。

如果我错过了什么,请告诉我。提前谢谢了。

@编辑:

我已经检查了可能的重复帖子。但我使用的不是 OpenCV,而是 SikuliX。我只需要 OpenCV 作为依赖项(因为 SikuliX 正在使用它)。

@Edit2:经过更多挖掘并尝试关注链接中的信息(重复),我发现了这个。它提供了在 Linux 系统上使用所需的信息。

0 投票
2 回答
554 浏览

python-2.7 - 使用 Sikulix 更改窗口的最简单方法是什么?

如果我在 GUI 中,则使用 python 2.7 和 sikulix API 与所述 GUI 交互。如果我从该 GUI 中单击某个以全屏打开另一个窗口的东西,sikulix 当前无法与新打开的窗口交互,它仍然可以出于某种原因只能看到旧窗口,即使它在下面。我可以把新打开的窗口变小,然后把原来的窗口拖到屏幕较低的地方,然后重新最大化新窗口,这样我就可以和新窗口交互了。 - - 有一个更好的方法吗?(使用 CentOS)

0 投票
1 回答
150 浏览

python - 无休止的while循环和旧的删除代码(弹出)......很好“弹出”。

自从开始在多个项目中使用 Sikuli 以来,我一直在努力解决一个奇怪的问题。我一直在使用 IDE,后来由于代码发生奇怪的事情而尝试分支。如果我早先使用弹出窗口调试代码,我可以保存代码,甚至重新启动我的电脑,甚至在其他文本编辑器中检查代码,但现在不存在的弹出窗口(和旧代码)有时会弹出。最后通常我最终放弃了原始文件,并且有时不得不奇怪地注释掉行并一次重新添加它们(即使在大规模的事情中,最终脚本与我之前所做的一切相同) . 我真的说不出话来。

这让我很难区分糟糕的代码和其他地方出错的地方。有谁知道什么可能导致这个“幻象代码”?因为我真的很茫然。

我想就 while i < (inputvariable) 出了什么问题提出建议。我根本不知道可能出了什么问题,我是不是在看东西?

我目前正在通过 Sikuli IDE 运行所有脚本。我确实想学习如何编写脚本并包含 sikuli,希望我可以将它整齐地打包,但我似乎无法理解它。

对于 while 循环,将其与“SSLoops”进行比较,我不明白为什么在满足条件时它没有跳出循环。(在数字之外打印出来。)

我不得不做一些奇怪的变通方法,比如注释掉整段代码,试图让它工作,然后慢慢地一个接一个地重新引入它,直到它与旧脚本完全匹配。如果我将脚本复制到一个新文件以制作更清晰的副本,希望如果存在某种缓存问题(?)它会解决,但我通常不得不再次修补它。

我一直在弹出窗口说“嘿”,因为我在 while true btnRewards 中有一个循环来运行一个说“嘿”的函数——这有望最终从 5 张图像中挑选出一个奖励。但是在删除它之后,当我试图解决主循环时,它仍然会弹出。

将用户输入变量与 i 进行比较的循环不断增加。压痕在我看来还可以吗?但我一定是错的?还是有其他原因使它出错?

我一直在让程序在一个文件夹上运行,所以打破循环的图片立即出现,所以理论上它应该运行输入的次数而没有其他任何东西(1)。任何帮助都深表感谢。

0 投票
1 回答
363 浏览

java - java代码中使用的sikulix api在linux上与opencv_java有错误

我编写了一个 java 代码来打开一个应用程序并使用 sikulix api 对其进行一些更改。该代码在 Windows 上运行良好,但在 linux ubuntu 上出现此错误:

我下载了opencv-4.1.0并构建了它,然后将生成的opencv-410.jar和libopencv_java410.so文件复制到项目的lib目录中,但错误仍然存​​在。

0 投票
1 回答
489 浏览

sikuli - 使用 Sikuli Finder() 搜索带有图标的屏幕截图,在循环中使用时提供类似缓存的响应

(在 Windows 10 上使用 Sikuli IDE -288 20/04/19)

我目前在第一次正确运行的部分代码方面遇到问题,但是第二次循环该函数而不是覆盖在第一次迭代中创建的信息,它以某种方式使用旧信息。

调用了一个函数selectRewards(),它需要在几秒钟内对奖励区域进行一些屏幕截图,以收集一个可用的动画静止图像,文件名按数字递增。然后该函数使用从屏幕截图 1 开始的屏幕截图创建一个 Finder。我要检查的 Finder 和图像被传递到一个search()函数中,它应该使用传递的 finder 和图像来查找匹配项。它检查 screenshot1、 screenshot2 等中所有定义的图像,直到找到匹配项。并使用屏幕截图中的坐标在屏幕上选择匹配项。

这一切都在 的第一次迭代中运行良好selectRewards(),它在屏幕截图中循环并在稳定的屏幕截图上找到图像,但是当再次调用该函数时,返回完全相同的“找到”结果,并且即使在屏幕截图中不存在图像(我什至在第一个循环结束时删除了屏幕截图,以尝试清除任何发送给取景器的不正确信息。

我试图将该部分拉出来以更清洁的方式分享,但它仍然提供了同样的问题。任何帮助和建议将不胜感激。

(虽然目前代码有更奇怪的问题,因为在 IDE 的一个选项卡中打开了主脚本,而在另一个选项卡中打开了新脚本 - 既不运行 - 如果我运行代码片段脚本,它将使用从以前的坐标/图像找到运行脚本)。Windows中是否存在某种内存问题或缓存?ALT+SHIFT+R 重新启动 IDE 通常有助于解决问题。

循环调用之一selectRewards()是正确的,奖励区域中有 3 张图像与要搜索的东西相匹配。但是第二个循环是不正确的,只有一个匹配的图像在那里并且不在同一个确切的位置。该脚本在第二次循环中单击了前一个循环的 3 个位置。

消息日志:====