Sikuli (Selenium と組み合わせて) を、UI テストのより視覚的な要素を自動化する可能性として検討します。特に、期待されるブランディングが適用されない場合に発生する可能性のある問題です。
私のテストでは、紫色のナビゲーション バーに白いナビゲーション アイコン イメージが表示されています。紫色の背景にある白いアイコンのスクリーン グラブを取得し、Sikuli テスト クラスでパターンとして使用します。その後、Web アプリの CSS を変更してナビゲーション バーが赤くなったら、テストを失敗させたいと思います。
残念ながら、背景色の変更は無視され、アイコンは関係なくクリックされます。パターンの類似値を 1f (完全一致) に設定すると、アイコンはクリックされません。ただし、ナビゲーション バーの色を正しい紫に変更すると、アイコンもクリックされないため、パターンに使用しているアイコンのスクリーンショットと一致します。
0 から 0.9 までの「類似」パラメータ値は、ナビゲーション バーの色に関係なく、テストをもう一度パスします。
これは Sikuli の能力の制限ですか、それとも何か不足していますか?
編集:
そのため、同様の質問に対するTHIS ANSWERを見つけたので、赤いパターンの白いアイコンと紫色のパターンの白いアイコンを紫色のブランドを持つ Web ページに一致させようとしたときに返されるスコアを確認するように促されました。両方のスコアは 0.9 を超えており、小数点以下第 2 位までの差があったため、パターンの「類似」プロパティを 0.9 に設定すると、両方が一致しました。
スクリーン ショットの領域を広げて、アイコンのサイズに対してより多くの背景を含めるように促されました。これにより、紫のパターンに白のパターンで 0.9 倍、赤のパターンに白のパターンで 0.7 倍のスコアが得られました。
したがって、マッチングでは背景色が考慮されますが、使用しているスクリーンショット パターンの大部分が同じ色である場合、スコアの違いはわずかであるというのが私の結論です。