前提・実現したいこと
Python+Seleniumを活用して社内システムの操作自動化を検討しています。
その中で、WEBページ(社外パッケージ品)内にユーザーID、パスワード用のテキストボックスがあるページはsubmitによる認証、
その認証が通った後のページがBasic認証(もしくはjavascriptを使ったパスワード入力)でパスワードを要求してくるため、
Seleniumでの操作でパスワードを入力するよう言われ、エラーになります。
同じような事例があるか調べましたが、見つかりませんでした。
解決策などありましたら、ご教授いただければ幸いです。
発生している問題・エラーメッセージ
例外が発生しました: UnexpectedAlertPresentException Alert Text: パスワードをいれてください! Message: unexpected alert open: {Alert text : パスワードをいれてください!} (Session info: chrome=84.0.4147.89) File "C:***\test.py", line 43, in <module> driver.get('https://***/menu.php3?type=xxxxxx&pass=&ip_addr= ')
該当のソースコード
Python
1import os 2os.system('cls') 3os.chdir('\\xxxxxx') 4 5from selenium import webdriver 6from selenium.webdriver.common.by import By 7from selenium.webdriver.common.keys import Keys 8from selenium.webdriver.support import expected_conditions as EC 9from selenium.webdriver.support.ui import WebDriverWait 10from selenium.webdriver.common.alert import Alert 11 12driver = webdriver.Chrome() 13driver.get('http://xxxx/login.php3') 14 15# ID, PW 16login_id = 'xxxxxx' 17login_pw = 'xxxxxx' 18 19button_login = driver.find_element_by_xpath("//input[@type='submit']") #Chromeの場合のみ確認画面があるので必要 20button_login.click() #Chromeの場合のみ確認画面があるので必要 21 22input_id = driver.find_element_by_name('id') 23input_password = driver.find_element_by_name('pass') 24 25input_id.send_keys(login_id) 26input_password.send_keys(login_pw) 27 28button_login = driver.find_element_by_xpath("//input[@type='submit']") 29button_login.click() 30driver.get('https://パスワードをここに入れる@xxxx/menu.php3?type=xxxxxx&pass=&ip_addr= ')
試したこと
・表記したソースはChromeDriverですが、IEDriverでも試しましたが同じ結果です。
・Basic認証画面はID入力欄がないので、ソース上はhttps://パスワード@xxxx/x.php3となっていますが、
submit認証画面(1画面目)で入力するIDを埋め込んで、https://ID:パスワード@xxxx/x.php3としてもダメです。
補足情報(FW/ツールのバージョンなど)
Google Chrome バージョン: 84.0.4147.89(64bit)
Internet Explorer11 バージョン:11.959.18362.0
Python バージョン:3.7.4
ChromeDriver バージョン:84.0.4147.30
IEDriver バージョン:3.150.1.0
ここでログインボタンを押した後、下記のパスワード要求画面に遷移します。
回答1件
あなたの回答
tips
プレビュー