gpt4 book ai didi

python - Sikuli/Python 中的循环问题

转载 作者:行者123 更新时间:2023-12-01 04:58:45 25 4
gpt4 key购买 nike

不确定我哪里出错了:

mm = list(r.findAll(rButton))# find all rButtons on main screen
print len(mm) #check how many are detected
for x in range(0,len(mm)):
r.click(mm[x])
if(not r.exists(rButtonDisabled)):
print "this is a test"
r.wait(BeginTask,FOREVER)
r.click(BeginTask)
r.wait(rButton,FOREVER)
else: click(Cancel)

有 2 个屏幕。我们将它们称为主屏幕和屏幕2。主屏幕上有相同的按钮,rButton。我想找到所有可见的 rButtons,然后开始单击它们。理想情况下,我希望它单击第一个 rButton,这会将其带到 screen2,如果 screen2 上的按钮被禁用,单击取消将我们移回主屏幕,然后转到主屏幕上的第二个 rButton,这再次将我们带到屏幕2。根据主屏幕上的 rButtons,屏幕 2 上的按钮可以禁用或启用。

我的代码无法达到这个效果。不知道我哪里出错了。

最佳答案

我不确定您如何定义区域“r”,但默认情况下,Sikuli 不会在操作系统 native 屏幕之外进行搜索。您需要首先让 sikuli 找到另一个屏幕,然后定义该屏幕的边界。

正如现在所显示的,无论您想要哪个屏幕,您都在搜索“r”区域...您应该分别定义两个屏幕,否则 Sikuli 将不知道切换屏幕来查找您想要的按钮。例如,您可以使用 Screen 类来定义哪个屏幕是哪个--

numScreens = getNumberScreens()
r = SCREEN #in all caps, this is the reserve word for the whole screen native to the OS
#can also use r = Screen(0)
if numScreens > 0 #make sure second screen was counted by sikuli
r2 = Screen(1).getBounds()
else: raise the appropriate error

#Here's your code with some adjustments for multiple monitors
#on main screen
mm = list(r.findAll(rButton))# find all rButtons on main screen
print len(mm) #check how many are detected
for x in range(0,len(mm)):
r.click(mm[x])
#on secondary screen
if(not r2.exists(rButtonDisabled)):
print "this is a test"
r2.wait(BeginTask,FOREVER)
r2.click(BeginTask)
#back to main screen
r.wait(rButton,FOREVER)
#click the cancel button on secondary screen
else: r2.click(Cancel) # <-- the defining region was missing here in your original code

Here's有关多显示器环境的 Sikuli 文档

关于python - Sikuli/Python 中的循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26772419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com