【发布时间】:2016-09-21 18:41:25
【问题描述】:
我能够发送密钥来处理使用 Selenium 和 win32com.client 的站点的身份验证弹出窗口。当我手动运行代码(运行 Jupyter Notebook)时,它工作正常。
当我将 .ipynb 转换为 .py 并使用 Windows 任务计划程序安排它自动运行时发生错误。它卡在身份验证弹出窗口中。
我已经尝试了以下选项:
1.) 这在笔记本中运行良好
shell = comclt.Dispatch("WScript.Shell")
driver = webdriver.Chrome(chrome_path)
driver.maximize_window()
driver.get(url)
shell.SendKeys("username", + "{TAB}" + "password" + "{TAB}" + "{ENTER}")
2.) 只是尝试一些替代方案并在笔记本中工作
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 中工作。每当计算机在计划运行之前检测到不活动时,任务就不会推进。有没有办法可以解锁系统并在此过程后将其锁定。顺便说一句,我添加了 pywinauto 以将控制台 Windows 和 SetFocus 最小化到 Chrome。谢谢!
标签: python selenium-webdriver scheduled-tasks win32com pywinauto