2019年9月9日月曜日

seleniumで認証つきページのログイン(むりやり感あり)

ログイン画面がポップアップで現れるページにseleniumで自動で入りたい、ということがありました。

成功した方法(むりやり)


アドレスにusername:passwordをつけて、http://username:password@www.xxxx.co.jp としてアクセス。

それ以外のやり方ではログイン画面をseleniumがつかめませんでした。

ここからは失敗例


import time
from selenium import webdriver

try:
    driver = webdriver.Firefox()
    time.sleep(3)
except:
    quit()

driver.get(target_url)

これでブラウザは起動できます。Username, Passwordの入力画面が出ます。画面のidがわからないので画面ごとつかみます。

alert = driver.switch_to_alert()

alert.textなどはOKですが、alert.sendkeys()、alert.authenticate()はNGで、こんなエラーが出ます。

WebDriverException: Message: User prompt of type promptUserAndPass is not supported
WebDriverException: Message: POST /session/..../alert/credentials did not match a known command


--ここまで失敗例--

別に今の目的では、アドレスに直接打っても問題ないのですが、ちょっともやっとしますね。

答えが書いていたもの。

その他参考


0 件のコメント:

コメントを投稿