【发布时间】:2021-08-12 19:57:23
【问题描述】:
我的以下代码在找不到 end_turn 图像时总是返回 findfailed 错误。
def clickCards():
# region.wait(end_turn,90)
# search for the cards and click all of them
if exists(zero):
z = region.findAll(zero)
for i in z:
click(i)
sleep(1)
else:
pass
if exists(one):
o = region.findAll(one)
for i in o:
click(i)
sleep(1)
else:
pass
click(end_turn)
while exists(level):
with region:
if exists(end_turn):
clickCards()
elif exists(victory):
click(victory)
else:
wait(end_turn,90)
我正在尝试自动化以下游戏视觉效果:
- 纸牌游戏开始
- 在结束按钮可用时点击卡片
- 用结束转弯按钮结束转弯
- 继续玩直到我赢
- 胜利出现,不再可见结束回合按钮
- 点击胜利图片
脚本会运行,但当我获胜时,它会出现找不到end_turn 按钮的错误。
错误信息:
[error] script [ axieTest ] stopped with error at line --unknown--
[error] Error caused by: Traceback (most recent call last): File "C:\Users\Mortada\Desktop\axieTest.sikuli\axieTest.py", line 47, in <module> wait(end_turn,90) File "C:\Users\Mortada\AppData\Roaming\Sikulix\Lib\sikuli\Sikuli.py", line 69, in wait return SCREEN.wait(target, timeout) Line 2761, in file Region.java
at org.sikuli.script.Region.wait(Region.java:2761)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
org.sikuli.script.FindFailed: FindFailed: end_turn.png: (129x48) seen at (1439, 676) with 1.00 in R[322,156 1278x763]@S(0) E:Y, T:3.0 Line 2761, in file Region.java
【问题讨论】:
-
@mkrieger1 实际上是 end_turn 和所有其他变量都被定义为 sikuli 中的快照,这就是为什么我没有将它们包含在代码中的原因。
-
显然这没有像你预期的那样工作。
-
@mkrieger1 确切地说,我想知道为什么我的 if 语句在找不到 end_turn 后不起作用,它应该寻找胜利图像,否则它应该等待 end_turn 图像出现。但是在找不到 end_turn 图像后失败。
-
能否请您显示准确且完整的错误消息以及您收到的回溯信息?
-
@mkrieger1 错误日志添加,似乎我的代码逻辑不正确,因为代码执行 else 语句并且它没有找到它破坏的元素
标签: python python-3.x sikuli sikuli-x