SeleniumでBasic認証が可能だった話@2021/11/12
こちらの続編です。
その無理だった話のほうでも既に言及してますが、extensionを使う方法ですね。一応、やってみました。私が使ったのは、TypeScript(NodeJS)です。
一応は、これで行けました。Edgeでも同じです。selenium-webdriver 4.0.0、Chrome95とEdge95です。
Firefoxについては、AutoAuthってのが使えました。
ただし、これだけではダメで、まず、Selenium用のFirefox Profileを作り、そのProfileを使って、Firefoxを起動して、その上で、上記extensionを入れて、Basic認証のあるサイトを開いて、extensionの機能を使って、ID、パスワードを記憶し、Seleniumでは、そのProfileと、extensionのファイル(xpiファイル)を指定してFirefoxを起動すれば良いです。xpiファイルはProfileのディレクトリの中にあるので、それを直接取っておけば良いです。
Firefoxのほうも、自分で超絶シンプルなextensionを完全自作する方法もないか調べたのですが、出てきませんでした。Chromeのextensionをマネしてそれっぽいものも作ったけど、それも狙い通りには動かず。。AutoAuthを使う方法はちょっと面倒ですし、ユーザーの操作に頼る所が気がかりですが、認証サイトを増やしたい時にコードを変える必要はないですね。認証を記憶する期限とかがどうなのかは気になりますが。。
検証環境はFirefox ESR 91でした。
Chrome、Edge、Firefox、いずれも、思ったよりもスムーズでした。人間が見る限りだと、Basic認証のダイアログが出ない感じで、いきなり、認証後のサイトのページが出る感じです。サーバー側の対応が無理なら、とりあえず、これですかね。ただ、これに頼って、後でダメになると、やはり、サーバー側になんとかしてもらわないといけませんが。。それの予告って意味でも、このextensionに頼る前に、一度、サーバー側担当者、ネットワーク担当者などに聞いておくのが無難でしょう。
以上。
P.S.
こういう話が出て来る背景としては、
在宅環境の普及で、
社内ネットワーク(社内VPN)を全ての通信が経由してると、
ウェブ会議とかの通信で回線がひっ迫するため、
インターネットに直接出て行くようにしていってる、
という流れがあります。
インターネットにいったん出るようになったせいで、
色々ネットワーク環境が変わってしまい、
その変わった状況でも社内サイトが見れるよう、
とりあえず、Basic認証で、と暫定対応をしている所が
増えているんだと思います。
Basic認証もhttpsであれば、
セキュリティ的には可、なんでしょうが、
Seleniumで、となると、また話が別なんですよね。
P.S. 2022/8/21
だいぶ後になってからの追記です。こちらに続編があります。
@@playwright並行すべき?