selenium弹窗之下载文件弹窗点击
一、弹窗类型
一般说到selenium中的弹窗包括以下三种类型:
类型一:窗口柄
这种窗口常说的就是窗口句柄,其实并不能算弹窗,应该属于窗口切换
类型二:web弹窗
使用如下命令导致的:
browser = webdriver.Firefox()
browser.implicitly_wait(0.1)
browser.get('https://www.bilibili.com/')
browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
browser.execute_script('alert("to botton")')
第三种:windows弹窗
参见《selenium+python自动化–文件下载弹窗处理(PyKeyboard)
selenium+python自动化99–文件下载弹窗处理(PyKeyboard)》,链接: link.
据这篇文章所述,这种弹窗并不是web界面的弹窗,我尝试过定位,确实不行,因为元素都找不到。因而这种弹窗我称之为windows弹窗,即不可以通过selenium的鼠标、键盘操作完成,用动作链也不行
二、windows下载文件弹窗点击方法
pyuserinput模块
大部分文章对于这种弹窗的点击方法使用的是PyUserInpu模块
但是这个模块需要pyhook模块,但是这个模块pip无法下载,
直接下载PyUserInput 也不行
有解决下载的文章《https://blog.csdn.net/zhusongziye/article/details/79241410》,链接: link.
具体怎么样没有尝试,一看就很麻烦
其中pyhook最新版本为2008年的
pyuserinput也是2016年的了,
长时间没有更新,怕有许多问题就没有继续安装了
pyautogui模块
在《python之鼠标、键盘模拟》,链接: link.
找到了这个pyautogui模块,最新版2020
近期更新的,一看比较靠谱,就用了这个模块
下载文件弹窗的点击方法
具体的点击位置需要慢慢调,我的弹窗解决方法
代码:
import pyautogui
pyautogui.moveTo(505,410)
pyautogui.click()
pyautogui.moveTo(765,465)
print('ok')