1

私は Sikuli API を初めて使用し、Sikuli-java-jar ファイルを使用しています。screen および pattern クラスを使用して、デスクトップ要素を正常にクリックしたいと考えています。

そこで、ソフトウェアをインストールするための自動化スクリプトを作成しようとしていました。インストーラーを正常に起動できますが、ポップアップ ウィンドウにある [次へ] ボタンをクリックできません。

エラーは発生しません。画像をクリックしても失敗するだけです。

ここに画像の説明を入力 ここに画像の説明を入力

appInstaller("E:\\Sikulimages\\tc.png");
        appInstallers("E:\\Sikulimages\\next.png");


public static void appInstaller(String path) throws FindFailed{
        s=new Screen();
        img=new Pattern(path);      
        s.exists(path);
        s.wait(img,2000);
        s.doubleClick(img);
    }

    public static void appInstallers(String path) throws FindFailed, InterruptedException{

        s=new Screen();
        img=new Pattern(path);      
        s.click(img);               
    }
4

3 に答える 3

1

その理由は、デフォルトのSimilarity (0.7) では、小さなボタンやテキストには不十分であるためだと思います。

Sikuli にはパブリック クラス Settings があり、public static double MinSimilarity = 0.7;をホストします。

この値は、ほとんどの画像認識には十分ですが、小さなテキストでは失敗します。小さなテキストがクリックされるようにするには、特定のパターンの類似度を上げるか、私のように Settings.MinSimilarity = 0.9; にする必要があります。

小さなテキストを認識するのに 0.9 でさえ十分でない場合があります。

于 2016-07-18T22:25:08.233 に答える
1

RPWheeler の回答に加えて、ターゲット画像のすぐ隣に毎回同じように表示されるものがある場合は、より大きなスクリーン クリップを取得して、その大きな画像のどの部分をクリックするかを Sikuli に伝えることもできます。

例: 「次へ」ボタンがボタンの行の一部である場合、スクリーン クリップには行全体が含まれます。次に、IDE で画像をダブルクリックし、[ターゲット オフセット] タブに移動します。ここに画像の例が表示されます。Sikuli にクリックさせたい画像の部分をクリックします。-- デフォルトは常に長方形の中心ですが、ターゲット オフセットで変更できます。

このようなコードで同じことを達成できます

t = find(yourImage).targetOffset(dx,dy)
click(t)

ここで、dx と dy は、長方形の中心点から離れた正または負のピクセル数です。

于 2016-07-19T13:09:47.163 に答える