我使用python的pyautogui模型自动安装软件。所以,我从安装屏幕上裁剪了一些图像,比如单击next,接受条款和条件。使用图像搜索,我能够找到屏幕上的图像,并能够点击正确的地区。在我的系统中运行良好。 但是,该脚本在其他系统中不起作用,因为图像搜索不成功。可能是因为图像在我的系统中被剪切,而在其他系统中被搜索。两个系统的分辨率相同,但屏幕大小不同(如15英寸、17英寸)。我的问题是屏幕上的locateOnScreen功能是否在不同的机器上兼容?鉴于我需要在公司的多个系统中部署这种自动化,我如何解决这个问题?代码粘贴如下:
import os
import time
import pyautogui
from pywinauto.application import Application
fsv = Application(backend="win32").start("sandra_24.61.exe")
while(1):
s = pyautogui.locateOnScreen("C:\\WV_Project\\testcaseAutomation\\images\\ok.png")
if (s==None):
print("wait for 1 sec for ok button to come")
time.sleep(1)
else:
pyautogui.click(s.left,s.top)
print("Ok clicked")
break
while(1):
s = pyautogui.locateOnScreen("C:\\WV_Project\\testcaseAutomation\\images\\acceptRadio.png")
if (s==None):
print("wait for 1 sec for accept radio button to come")
time.sleep(1)
else:
x=s.left
y=s.top
pyautogui.click(s.left,s.top)
print("accept clicked")
break;
time.sleep(2)
x = x+366
y=y+78
pyautogui.click(x,y)
print("next clicked")
time.sleep(2)
pyautogui.click(x,y)
time.sleep(2)
print("next clicked")
time.sleep(2)
pyautogui.click(x,y)
print("next clicked")
time.sleep(2)
pyautogui.click(x,y)
time.sleep(2)
print("next clicked")
pyautogui.click(x,y)
time.sleep(2)
print("next clicked")
pyautogui.click(x,y)
print("install clicked")
time.sleep(50)
while(1):
time.sleep(2)
try:
x,y = pyautogui.locateCenterOnScreen("C:\\WV_Project\\testcaseAutomation\\images\\finish.png")
pyautogui.click(x,y)
break
except:
print("Exception occurred")
print("Sandra is successfully installed.")
据我所知!问题在于图像分辨率。 在我的公司里,我还有一个机器人,它能自动完成一些复杂的任务。这里所有的显示器都是一样的,但我还是遇到了一些匹配图像的问题。从一台电脑截取的图像在另一台电脑上无法工作。所以我现在正在做的是使用“剪贴工具”在每台电脑上截图。这很容易解决问题,但这个解决方案需要时间。如果您使用的电脑不超过10台或20台,那么此解决方案可能会有所帮助。你知道吗
如果问题存在,您可以尝试降低置信水平,如下所示:
尝试使用不同的置信度。 您还需要OPENCV来使用CONFIDENCE。 使用“pip install opencv python”从命令提示符安装opencv。你知道吗
如果在
1366x768
中创建脚本并在1920x1080中尝试,则可以更改分辨率,因为需要添加新图像有两种方法可以使用:
1:>;替换图像
2:>;添加x,y位置
方式:
3:>;您可以使用inspect捕获图标
您也可以单击鼠标右键,然后单击“检查”转到“应用程序”,在“图像”文件夹中找到该图像,然后保存它,它将在所有屏幕上工作
相关问题 更多 >
编程相关推荐