前言
文件下載時候會彈出一個下載選項框,這個彈框是定位不到的,有些元素注定定位不到也沒關系,就當沒有鼠標,我們可以通過鍵盤的快捷鍵完成操作。
SendKeys庫是專業的處理鍵盤事件的,所以這里需要用SendKeys解決
只支持python2環境
python3 的用 PyUserInput 看這篇 selenium+python自動化85-python3.6上SendKeys報錯用PyUserInput取代
一、下載場景
1.當點到下載按鈕時候,會彈出如下頁面
2.如果想點“保存文件”按鈕,解決問題思路:
- 先按TAB鍵,移動光標聚焦到保存按鈕上
- 再按下ENTER鍵,這樣就能保存了
二、代碼實現
# coding:utf-8
from selenium import webdriver
import SendKeys
import time
driver = webdriver.Firefox()
driver.get("https://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe")
time.sleep(3)
# 默認在取消按鈕上,先切換到保存文件上
SendKeys.SendKeys("{TAB}") # 發送TAB鍵
time.sleep(3)
# 火狐上第一次回車沒生效,所以多發一次回車
SendKeys.SendKeys("{ENTER}") # 發送回車鍵
SendKeys.SendKeys("{ENTER}") # 發送回車鍵
學習過程中有遇到疑問的,可以加selenium(python+java) QQ群交流:646645429
也可以關注下我的個人公眾號:
《selenium webdriver基於python源碼案例》已出書:selenium webdriver基於Python源碼案例(購買此書送對應PDF版本)