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')