Windows のデフォルトでは、Firefox ドライバーは要素とのやり取りにいわゆる「ネイティブ イベント」を使用します。つまり、マウスとキーボードの相互作用は、相互作用をシミュレートするために JavaScript を使用する、より一般的ではあるものの、限定的で精度が低い可能性があるのではなく、OS レベルのメカニズムを使用してシミュレートされます。Firefox の場合、C++ ソースからコンパイルされた OS 固有のバイナリ ライブラリ (Linux では .so、Windows では .dll) をロードする必要があります。これらのバイナリー・ライブラリーは、Gecko SDK の特定のバージョンにリンクする必要があります。つまり、特定のバージョンの Firefox でのみロードして使用することができます。
Firefox のすべてのバージョンをサポートするとドライバーが大幅に肥大化するため、WebDriver チームは、Selenium リリースがサポートするバージョンの数を制限しています。Firefox の現在のサポート ポリシーは、現在の Firefox リリース、直前の Firefox リリース、現在の Firefox 延長サポート リリース (ESR)、および直前の ESR リリースをサポートすることです。すべてのバージョンは、Selenium プロジェクトのリリース日に計算されることに注意してください。
新しい Firefox のリリースには新しい SDK が含まれるため、Selenium プロジェクトはそれをサポートするために新しいネイティブ イベント コンポーネントをコンパイルし、それらのコンポーネントを含む新しい Selenium バージョンをリリースする必要があります。このプロジェクトは新しいリリースを Firefox の新しいバージョンのリリースにできる限り近づけるように努めていますが、これはすべてボランティアのプロジェクトであり、Mozilla は Gecko SDK を警告なしにバージョンからバージョンへと変更できる (実際に行っている!) ため、 Selenium の更新が遅れることがあります。
さらに 2 つのポイント: まず、Firefox ドライバーのアーキテクチャはこの点で独特であるため、他のブラウザーではこの動作は見られません。ただし、他のブラウザでは、更新されたブラウザ バージョンを処理するために更新されたドライバが必要であることに注意することが重要です (chromedriver.exe を参照)。第 2 に、このアーキテクチャは、マリオネットとも呼ばれる FirefoxDriver2 が完成し、Mozilla によってリリースされると、完全に変更されます。Marionette のリリースのスケジュールは Mozilla 次第なので、それに関する情報については Mozilla に連絡する必要があります。