回答

たとえば、次のような文は未来完了形になっているのに、
Ex. He will have finished it by the time we reach home.
(私たちが家に着くまでには彼はそれをし終えているだろう。)
どうして今回は、
will have rained (未来完了形)あるいは will have been raining(未来完了進行形)
にならないのかというご質問でしょうか。

まず選択肢の中に
will have rained も will have been raining も含まれていません。
よって消去法から3番のwill be raining が正解になります。

またもし選択肢にこれらが含まれていたとしたらどんな文意になるのか考えてみます。
will have rained は未来完了なので「完了・経験・継続」のどれかを表すことになります。
will have begun to rain(雨が降り出してしまっていることだろう)なら可能だと思いますが、will have rainedではここの文意には適当ではありません。

will have been raining の未来完了進行形の場合は未来の基準時まで出来事が継続していることを表します。「ずっと降り続いていることになる」の意でやはりここにはふさわしくありません。

よって未来進行形のwill be raining (雨が降っていることだろう)がふさわしい表現となります。

この回答にコメントする

by the time S V で「SがVする時までに」という
意味になります

The weather report said that it (will be raining) by the time we get to London.

訳[その天気予報は私たちがロンドンに着くまでに雨 が降っているだろうと言っていた]

この回答にコメントする
疑問は解決しましたか?