選択した言語のすべての機能を使用できます。たとえば、IDE を使用すると、IDE の API を使用することに固執しますが、WebDriver を明示的に使用することを選択した場合は、それを C# と組み合わせて、C# の全機能 (LINQ など) を使用できます。
IDE コマンドのいくつかは、WebDriver で直接変換されません。
純粋な WebDriver テストを CI (Continuous Integration) サーバーに統合できます。
Firefox だけに限定されているわけではありませんが、IDE はそうです (IDE は Firefox でのみ使用できるため)。
Selenium をより簡単に改善および拡張できます。たとえば、拡張メソッドと継承を使用します。(たとえば、Selenium を拡張して、要素が見つからないときはいつでもページのスクリーンショットを取得するようにします)
IDE は要素を見つけるための最も信頼できる方法を常に提供するとは限らないため、より堅牢になります。たとえば、必要な要素がテーブル内にネストされている場合、IDE が提供する XPath は、特定のテーブルの行とセルを直接推測します。
たとえば、次のようなものです。
//table[1]/tr[1]/td[2]/table[1]/tr[1]/td[3]/a[1]/b
世界で最も信頼できる XPath ではありません。XPath や自動化されたテスト、または Selenium のしくみについての知識がない人は、それに固執し、この XPath クエリが失敗する理由を理解するために何時間も無駄にします。他の人はそれを変更し、XPath を基本クエリとして使用します。
IDE は通常、プログラミングの知識があまりない人 (一部のテスターなど) に使用する必要があります。自分の開発者やテスト開発者に Selenium を使用してもらいたい場合は、WebDriver を直接使用してください。スクリプトではなく、本格的な言語を使用したプログラミングのように感じられます (結局のところ、IDE が生成するスクリプトは純粋な HTML ファイルです)。このアイデアは、一般に、プログラミングの知識があまりない人が単に「再生」を押して、Selenium に作業を任せることを目的としています。
ドラッグ アンド ドロップは、IDE および WebDriver 内で適用できます。
Selenium での開発のほとんどは (どうやら) WebDriver コードの拡張に費やされており、IDE はいくつかの新機能で取り残される可能性があります。
WebDriver を直接使用すると、単体テスト フレームワーク (通常は C# を使用する NUnit または Java 用の Junit/TestNG) の全機能を使用することもできます。これにより、ブラウザーごとにテストを繰り返したり (つまり、Chrome、Firefox、IE でテストを繰り返したり)、テストの前後に特定のロジックを定義したり (つまり、ユーザー メンバーシップの追加、ユーザーの作成、他のテスト データの設定) したりすることができます。
他の開発者は、スクリプト言語ではなくプログラミング言語を使用している場合 (つまり、WebDriver はプログラミング言語でプログラムされており、IDE スクリプトは単なる HTML ファイルです) を支援する傾向があります。これをソリューションに組み込み、夜間のビルド プロセスの一部として使用することで、開発者がテストの進行を確実に支援できるようになります。
考えてみると、別の例として、バグは修正されましたが、テストが失敗する原因となる新しいバグが導入されています。テストを修正する責任は誰にありますか? あなたか彼らか?WebDriver を直接使用すると、Selenium のソース コードを調べて、API の使用法を自分で把握できます。IDE では、これは文字どおり、何らかの javascipt を呼び出す HTML ファイルです。それに関するドキュメントはあまりありません。
要約すると、プログラミングの経験があまりない場合は、言語を学んで WebDriver を直接使用するか、IDE を使い続けるかのどちらかです。どちらかが仕事をします。