图像搜索在使用pyautogui python的不同系统上不起作用?

问题描述 投票:0回答:1

我正在使用python的pyautogui模型自动进行软件安装。因此,我从安装屏幕中裁剪了一些图像,例如单击“下一步”,接受条款和条件。使用图像搜索,我可以在屏幕上找到图像,并可以单击正确的区域。在我的系统上工作正常。但是,该脚本在其他系统中不起作用,因为图像搜索不成功。可能是因为图像在我的系统中被裁剪并在其他系统中被搜索。两个系统的分辨率相同,但屏幕尺寸不同(例如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.")
python pyautogui
1个回答
0
投票

据我所能假设!问题在于图像分辨率。在我的公司中,我还有一个自动执行某些复杂任务的机器人。这里的所有监视器都是相同的,但是我在匹配图像时遇到了一些麻烦。一台PC上的裁剪图像无法在另一台PC上使用。因此,我现在正在使用“快照工具”在每台PC上截图。这很容易解决问题,但是该解决方案需要时间。如果您使用的PC数量不超过10或20,则此解决方案可能会有所帮助。如果存在问题,则可以尝试通过减少CONFIDENCE LEVEL如下所示:

x,y = pyautogui.locateCenterOnScreen(“ C:\ WV_Project \ testcaseAutomation \ images \ finish.png”,灰度=真,置信度= .5)

尝试使用不同的置信度。您还需要OPENCV才能使用CONFIDENCE。使用“ pip install opencv-python”从命令提示符安装OPENCV。

© www.soinside.com 2019 - 2024. All rights reserved.