金さん
初めまして。伊藤です。
> ①スクリーンショットを取る範囲を設定するには、何か方法がありますでしょうか?
seleniumの画面キャプチャロジックだと、あまり簡単な方法は無いと思います。
スクリーンショットを取った上で、必要な範囲だけをさらに切り取る処理を自分で行う必要があります。
たとえば特定の要素の領域だけを切り取りたい、などでしたら、WebDriverのelementのgetSizeやgetLocationメソッド
などで取得した領域を画像から切り取る、という方法が考えられます。
> ②スクリーンショットを比較するには、どのような実装方法がありますでしょうか?
あとは、https://applitools.com/のようなクラウドサービスを使うと、
スクリーンショットの比較、ブラウザ上でのチェックなどがより簡単に行えます。
最近では画像比較によるテストには「Visual Testing」という名前がついているようで、
検索するといくつかヒットすると思います。
範囲指定の方法は、これらのライブラリ・サービスで何か良い方法が提供されているかもしれませんし、
単に①の方法で指定範囲だけを切り取って全体比較するという手法もあるように思います。
あと、画像比較は、画面デザイン変更の影響を非常に受けやすいので、
多用しすぎるとテストのメンテナンスが辛くなると思うのでご注意ください!
> ③取得値やログに関して判定するには、どのような実装方法がありますでしょうか?
具体的に何を指しているでしょうか?
テスト実行ログなどであれば、Jenkinsや各種クラウドCIツールでテストを実行すれば、
実行ログは簡単に保存できます。それが一般的と思います。
ダウンロードしたファイルの保存など何がしかのファイルをテスト結果に関連づけて保存したい場合も、
JenkinsならArtifactの保存などの方法で保存できると思います。クラウドCIツールだとちょっと辛いかもしれません。
それ以外に、特定のディレクトリにファイルを残しておきたいとか、ファイルの内容を正解データと比較判定したいだとかですと、
自前でロジックを書くしか無い気がします。