ベーシック認証のログイン方法.py

古いBuffalo製のルーターの管理画面にブラウザからアクセスしようとすると、入力用のポップアップが現れ、ID/PASSを入力する必要がありました。

UWSCを使用していた時は無理くりテキストボックスに文字列を挿入していましたが、これseleniumではどうするんだ?と調査していたところ、めちゃくちゃ簡単な答えがありました。

このベーシック認証はID/PASSをURLに埋め込んでアクセスすることができるます。
埋め込んだID/PASSに問題が無い場合は認証ポップアップが表示されません。

 

例) "http://192.168.11.1" -> "http://root:@192.168.11.1/"

上記はrootにパスワードが設定されていないパターン
パスワードが設定されている場合root:1234と:のあとに挿入します

 

  Rooter.py


#Python version : 3.11.4

#Windows 11 Pro
#Google Chrome : 117.0.5938.150

from selenium.webdriver.chrome import service
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.chrome.service import Service

service = Service(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
driver.implicitly_wait(10) # seconds
driver.get('http://root:@192.168.11.1/cgi-bin/cgi?req=tfr&id=50')