Seleniumとwin32com.clientを使用してサイトの認証ポップアップを処理するためのキーを送信できます。コードを手動で実行するとうまくいきます(Jupyter Notebookを実行中)。Selenium Webdriver Pythonを使用した認証ポップアップ
.ipynbを.pyに変換し、Windowsタスクスケジューラを使用して自動的に実行するようにスケジュールすると、エラーが発生します。認証ポップアップウィンドウが表示されます。
私は下のオプションを試してみました:これは
shell = comclt.Dispatch("WScript.Shell")
driver = webdriver.Chrome(chrome_path)
driver.maximize_window()
driver.get(url)
shell.SendKeys("username", + "{TAB}" + "password" + "{TAB}" + "{ENTER}")
2.ノートブックに正常に動作します)
1)だけ
shell = comclt.Dispatch("WScript.Shell")
driver = webdriver.Chrome(chrome_path)
driver.maximize_window()
driver.get(url)
try:
alert = driver.switch_to_alert().accept()
shell.SendKeys("username", + "{TAB}" + "password" + "{TAB}" + "{ENTER}")
except NoAlertPresentException:
shell.SendKeys("username", + "{TAB}" + "password" + "{TAB}" + "{ENTER}")
ノートにいくつかの選択肢とその作業をされていますしようタスクスケジューラを使用してこのコード(.py)を自動的に実行する方法に関するより良いアプローチがありますか?
アップデートまでの私の一時的な解決策です:アクティブなデスクトップセッションがある場合にのみコードがの.pyで動作します。スケジュールされた実行前にコンピュータが非アクティブを検出すると、タスクはプッシュスルーされません。私はシステムのロックを解除し、プロセスの後にロックする方法がありますか?ところで、コンソールウィンドウとSetFocusをChromeに最小化するためにpywinautoを追加しました。ありがとうございました! –