前提・実現したいこと
Python、Selenium、chromeを使用してWEBサイトのJavascriptで生成されたconfirmのOKを押して処理を実行させたいです。
あるWEBアプリの毎日の処理を半自動化するために、Pythonで自動化処理を書いています。
そのWEBアプリでは最後に処理を実行させるときに、「処理を実行しますか? OK キャンセル」という感じのAlertが出て、OKを押下すると処理が実行されるようになっています。
そのAlertのOKボタンをSeleniumで押下したいです。
発生している問題・エラーメッセージ
ターミナルにはエラーメッセージは出ていませんでしたが 下記コードでOKを自動で押下しても、ダイアログは消えますが、手動クリックした時のように処理が実行されません。 WEBサイトの仕様によってはそのようなこともあるのでしょうか?(sleniumでconfirmのOKを押しても、手動でクリックしたときのように処理が実行されないこと)
該当のソースコード
Python
1# Const 2import const as CONST 3import chromedriver_binary # ChromeDriver 4import datetime 5import time 6 7# library & module 8from selenium import webdriver # Smodule elenium webdriver 9from selenium.webdriver.support.ui import WebDriverWait 10from selenium.webdriver.support import expected_conditions 11from selenium.webdriver.common.alert import Alert 12 13# arguments from comand line 14import sys 15args = sys.argv 16 17# Open browser 18driver = webdriver.Chrome() 19 20# Seeting of Timeout 21wait = WebDriverWait(driver, 10) 22 23# Try login 24def login_to_time_records(): 25~~ 26WEBサイトへログインして諸々の処理省略 27~~ 28 time.sleep(5) 29 alert = driver.switch_to_alert() 30 alert.accept() 31 32 ## Transfer to Time records page 33 print('-------Complete login-------') 34 35login_to_time_records()
試したこと
Alert(driver).accept()
に置き換えたりしましたが、同じ結果でした。
ターミナルにはエラーが出ず、print('-------Complete login-------')まで正常に処理されているようです。
補足情報(FW/ツールのバージョンなど)
MacOS mojave 10.14.6
Python 3.8.3
Chrome バージョン: 89.0.4389.90(Official Build) (x86_64)
chromedriver-binary==89.0.4389.23.0
業務用のWEBアプリなのでURLは添付できません。
回答1件
あなたの回答
tips
プレビュー