1
Python3-Seleniumを使用してウェブサイトにアクセスしたいと思います。しかし、私の目標のウェブサイトにアクセスするには、私は認証ページに合格しなければなりません。Python3 Seleniumポップアップダイアログでユーザ名とパスワードを入力
たとえば、アクセスしたいURLターゲットウェブサイトはhttps://target_website.comです。認証ページのURLはここhttps://example.example.com/ab/cd/ef
であるのに対し、ページのサンプルです:
あなたは上の図から見ることができるように、私がしなければならない:
- フィルユーザー名
- パスワードの入力
- ログインをクリックしてください。
次のコードを試してみましたが、うまくいきませんでした。
browser = webdriver.Chrome('path_to_exe')
wait = WebDriverWait(browser, 600)
browser.get('https://target_website.com')
wait.until(EC.alert_is_present())
browser.get('https://<username>:<password>@example.example.com/ab/cd/ef')
次のコードを試しても、動作しませんでした。
browser = webdriver.Chrome('path_to_exe')
wait = WebDriverWait(browser, 600)
browser.get('https://target_website.com')
wait.until(EC.alert_is_present())
browser.get('https://<username>:<password>@example.example.com')
最後に、次のコードを試しましたが、もう一度動作しませんでした。
browser = webdriver.Chrome('path_to_exe')
wait = WebDriverWait(browser, 600)
browser.get('https://target_website.com')
wait.until(EC.alert_is_present())
alert = browser.switch_to_alert()
alert.authenticate('<username>', '<password>')
alert.accept()
おかげで動作することを
注意!残念ながら、私はFirefoxを持っていません。不思議なことに、IEを使用している場合、認証ページをスキップすることがあります。しかし、私のコードはIE11では動作しません。次のエラーメッセージが表示され続けました: 'NoSuchWindowException:メッセージ:閉じたウィンドウで要素を見つけることができません。 ' – arnold
Firefoxを使って試しました。この部分 'alert.send_keys( 'username')'は働いていました。この部分は 'alert.send_keys(Keys.TAB)'になりました。しかし、この部分 'alert.send_keys( 'password')'は動作しませんでした。 'alert.send_keys(Keys.TAB)'の後、カーソルはパスワードフィールドに移動しましたが、 'alert.send_keys( 'password')'を実行すると、パスワードはusernameフィールドに書き込まれました。したがって、usernameフィールドは 'usernamepassword'で構成されています。どのようにこれに対処する考えですか?ありがとう、トン! – arnold
'alert.send_keys( 'username' + Keys.TAB + 'password')'を試してください。これはうまくいくはずです。 – Andersson