2つの大きなものはWatinとSeleniumのようです。私は Selenium で作業をしたことがないので、意見はありません。
私はかなりの量のWatinを使用しており、かなり優れていますが、多くの問題があります. ブラウザからの大幅に変化する応答時間に対処するのは難しい場合があります...タイムアウト期間の設定など。
Watin の最新バージョンは IE と Firefox をサポートしており、非常に優れています。
テストの保守に関する限り、私の経験では、最も重要なことは、「テスト ドライバー」コードを「ページ ラッピング コード」から完全に分離することです。「テスト ドライバー」とは、次のようなコードを持つ実際のテスト ロジック (NUnit など) を意味します。
...
var wrapper = new SearchPageWrapper(browser);
wrapper.ClickAdvancedSearch();
wrapper.EnterSearchPhrase("dog");
wrapper.SetSortBy(SortType.Date);
wrapper.ExecuteSearch();
... ページラッパーは、実装の詳細を隠しながら、この論理インターフェースをページ自体に公開します (これは複雑で、ページレイアウトで頻繁に変更される可能性があります)。
public class SearchPageWrapper {
...
public void ClickAdvancedSearch() {
_browser.Buttons("advSearch").Click();
}
public void EnterSearchPhrase(string phrase) {
_browser.TextBox(Find.ByName("phrase")).TypeText(phrase);
}
... etc ...
}
このようにして、新しいテストケースを簡単に追加できるラッパーのライブラリを構築し、Watin がページ上の要素を見つけて対話する方法に影響を与えるレイアウトの変更に対処するのも簡単になります。