前回までのあらすじ
いいかんじにグローバルIPを変更することに前回成功させたのはいいのですが、
時代が変わったのと同時に、seleniumが変わり果てました。

使っているもの
今回は、古いMACにインストールしたUbuntu MATE 22.04.1 amd64です。
マシンの処理速度がラズパイ4並なので、ちょうどいいということで、
ラズパイ試験の前段階に使っています。

戦後処理
いつの間にか、seleniumがバージョン4になり、
様々な仕様が変更になったそうです。
久しぶりに使ってみたら、どうりで使えなくなったわけだ。
バージョン4に合わせるのも大変なので(時間見てやってみるけど)。

現状は、大丈夫だったころのバージョンで使い続けてください。
どういうわけか、ターミナルのpython3は、
sudo apt installでインストールされるpython3-seleniumを使おうとします。
そして、aptのほうでインストールできるものは、常に最新版しかありません。
フラグ立たせるためにインストールします。
sudo apt install python3-selenium
そして、pipでもいったん最新版をインストールします。
pip3 install selenium
このあと、昔のバージョンにダウングレードする場合は、pipを使います。
いったんアンインストールして、新しくインストールします。
pip uninstall selenium
pip install selenium==3.141.0
実際に使われるseleniumは1つだけど、インストールの入り口は1つじゃないことを利用して、
ちょっとした小細工をしています。
なぜかターミナルのPython3は、aptのほうを使おうとするので、
いったんaptでインストールしたというフラグを立てる。
あとでpipのほうで差し替えれば、aptのほうのフラグを引っ込めないで使うことができるので、
こうやってubuntuを素敵に騙す。
あと、このスクリプトはrequests、pyvirtualdisplayも必要なので、入れておいてください。
これは普通のやり方で入れて大丈夫です。
sudo apt install python3-pyvirtualdisplay python3-requests

2023/4/17追記
sudo apt install python3-selenium のコマンドで入ったバージョンは、
4.0.0.a1。第6話に出てくるスクリプトは、そのまま動きました。

あのスクリプトの正しい使い方は、
firefoxとpython3-seleniumの更新をできない形にして、
それで動かしていくのが正解のようです。
というわけで、apt upgradeしてもアプデしないようにするには、
sudo apt-mark hold python3-selenium firefox
echo python3-selenium hold | sudo dpkg --set-selections
echo firefox hold | sudo dpkg --set-selections
こういうおまじないが必要になるのでした。
バージョン3のあのころの活躍が、また復活するはずです。

今度の追記は、selenium4に合わせたものに改造するときになるかもしれません。