Python Selenium 文件下載


Python Selenium 進UI自動化測試時都會遇到文件上傳和下載的操作,下面介紹一下文件下載的操作

這里介紹使用FireFox瀏覽器進行文件下載的操作。

 

1、設置文件默認下載地址

如下圖,firefox可以通過 在地址欄輸入:about:config 或about:aupport 來查看或修改配置信息。 


 

 

 

2、設置自動下載操作

  這里有兩種解決方式

2.1、設置自動保存下載

 如下圖勾選:以后自動采用相同的動作處理此類文件

這樣下次在下載該類型的文件時就不會這樣提醒了。

 

2.2、修改設置可以在 瀏覽器選項中進行修改

如下圖

 

3、進行文件下載

 這樣設置完成后,但是程序啟動時打開的瀏覽器並沒有按照這種配置打開。

 對比下圖可以發現,通過webdriver打開的瀏覽器與手工打開的瀏覽器展示的不同,這是因為webdriver打開的瀏覽器沒有按照瀏覽器設置的配置文件打開。如果想按照配置文件打開,在打開之前要先獲取配置文件信息。

 

 

解決方法有兩種,如下

 

 3.1、加入代碼如下: 

      profile =  webdriver.FirefoxProfile(r"C:\Users\Skyyj\AppData\Roaming\Mozilla\Firefox\Profiles\1rzh6139.default")

        self.driver = webdriver.Firefox(profile)

 

 3.2、在代碼中加入配置信息

 

通過about:config

通過%APPDATA%\Mozilla\Firefox\Profiles\找到默認配置  

找到mimeTypes.rdf目錄,用其它方式打開,查找你剛剛保存的文件類型

mimeTypes.rdf 就存在上面 profile 的配置路徑中

C:\Users\Skyyj\AppData\Roaming\Mozilla\Firefox\Profiles\1rzh6139.default

查找fileExtensions="xlsx"

NC:value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
NC:editable="true"
NC:fileExtensions="xlsx"
NC:description="xlsx File">

 

從文件中就可以得知我們需要的文件類型是什么


插入代碼如下:

#profile =  webdriver.FirefoxProfile(r"C:\Users\Skyyj\AppData\Roaming\Mozilla\Firefox\Profiles\1rzh6139.default")
        profile = webdriver.FirefoxProfile()

        ##設置成0代表下載到瀏覽器默認下載路徑;設置成2則可以保存到指定目錄
        profile.set_preference("browser.download.folderList", 2)
        #這里設置與否不影響,沒有發現有什么影響。
        #profile.set_preference("browser.download.manager.showWhenStarting", False)
        profile.set_preference("browser.download.dir", r"c:\Down")
        profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
        #這里設置與否沒有發現有什么影響
        #profile.set_preference("browser.helperApps.alwaysAsk.force", False);
        self.driver = webdriver.Firefox(profile)

 

建議使用第二種,這樣不需要設置瀏覽器,可移植性好。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM