我想找到一个与org.sikuli.api.DesktopScreenRegion类似的API来验证另一个图像是否存在于另一个图像中

时间:2013-11-29 04:39:05

标签: python webdriver sikuli appium

我正在使用Appium为IOS自动化编写Python代码,但是却遇到了这个问题:     检查点检查tableView中的某些单元格,更改设备位置设置(单元格将不同,数字和文本),如果文本和图像正确显示在单元格中,并且图像与文本匹配,如足球图标匹配“足球”,我试图找到webdriver api来捕获单元格的快照,但我找到的所有方法都是针对驱动程序的,它只能捕获整个屏幕。

so we found a way to check this: first we capture the correct screenshot for the cells manually, then running the automation script, use the correct cell_screenshot to check if it appears in the screen

现在我的同事们已经拥有了这个代码:

import org.sikuli.api.DesktopScreenRegion;
import org.sikuli.api.ImageTarget;
import org.sikuli.api.ScreenRegion;
import org.sikuli.api.Target;

public class SnapShot {
    static DesktopScreenRegion sr = new DesktopScreenRegion();
    static Target image;
    static ScreenRegion result;
    static String fileURL;

    private static String getImageURL(String fileURL){
        return "screenshots/" + fileURL; 
    }`enter code here`
    public static boolean imageExists(String fileURL, Double similar, int timeout){
    timeout = timeout * 1000;
    image = new ImageTarget(new File(getImageURL(fileURL)));
    image.setMinScore(similar);
    result = sr.wait(image, timeout);
    if (result == null){
            System.out.println("Can not find image");
            return false;
    }
    return true;
    }
}

此代码可以使用imageExists判断图像是否可以在另一个图像中找到 我为python搜索sikuli api,但找不到任何东西,看起来只有java api 现在我被困在这里,有人可以帮忙吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

Sikuli也支持Jython。事实上,这是Sikuli的默认脚本语言。所以你可以在Jython中编写类似的逻辑,然后从Python调用该脚本(如果可以的话)。我见过用户使用Java来调用sikuli脚本。有关Sikuli的详细信息,请参阅here