有时需要下载多个文件,但是不想保存在同一个目录下,需要做两步
- selenium设置浏览器默认下载路径,这个路径需要是个不存在的路径
- 操作文件另存为弹框
文章目录
- selenium设置浏览器默认下载路径
- 操作文件另存为弹框
selenium设置浏览器默认下载路径
selenium设置浏览器默认下载路径,这个路径需要是个不存在的路径
options = webdriver.ChromeOptions()
prefs={
"download.default_directory":"D:/a/b/c" # todo我电脑里不存在这个路径
}
options.add_experimental_option('prefs',prefs)
driver= webdriver.Chrome(executable_path="???",options=options)
操作文件另存为弹框
由于上面设置的路径不存在,每次下载文件的时候,电脑都会弹出文件另存为弹框,此时可以操作这个窗口保存文件到不同路径
import win32gui
import win32cnwin = win32gui.FindWindow('#32700',u'另存为')
edit = win32gui.FindWindow(win,0,'DUIViewWndClassName',None)
edit = win32gui.FindWindow(edit,0,'DirectUIHWND',None)
edit = win32gui.FindWindow(edit,0,'FloatNotifySink',None)
edit = win32gui.FindWindow(edit,0,'ComboBox',None)
edit = win32gui.FindWindow(edit,0,'Edit',None)
win32gui.SendMessage(edit,win32con.WM_SETTEXT,None,
"D:\\a.txt" # 注意路径需要带文件名
) save = win32gui.FindWindowEx(win,0,'Button',None)
win32gui.SendMessage(win,win32con.WM_COMMAND,1,save)# 保存按钮
另外,如果需要知道文件下载完没有可以参考监听浏览器的下载事件