1. 程式人生 > >webdriver高級應用 -無人工幹預地自動下載某個文件

webdriver高級應用 -無人工幹預地自動下載某個文件

false testcase selenium har python ever 腳本 all table

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2019/2/13 18:59
# @Author  : solo
# @Site    : 
# @File    : webdriver_11_6.py
# @Software: PyCharm

#無人工幹預地自動下載某個文件
#目的:在網頁上下載時,通常需要人為設定下載文件並選擇保存路徑,這樣就無法實現完全自動下載的工程。以下示例是基於firefox瀏覽器的
#全自動化文件下載操作,腳本執行後會將文件保存到指定目錄的文件夾下。

from selenium import webdriver
import unittest,time

class TestDemo(unittest.TestCase):

    def setUp(self):
        #創建一個firefoxprofile示例,用於存放自定義配置
        profile = webdriver.FirefoxProfile()
        #指定下載路徑,默認只會自動創建一級目錄,如果指定了
        #多級不存在的目錄,將會下載到默認路徑
        profile.set_preference(‘browser.download.dir‘,‘d:\\iDownload‘)
        #將browser.download.folderList設置為2,表示將文件下載到指定路徑
        #設置成2表示使用自定義下載路徑;
        #設置成0表示下載到桌面,設置成1表示下載到默認路徑

        profile.set_preference(‘browser.download.folderList‘,2)

        #‘browser.helperApps.alwaysAsk.force對於未知的MIME類型文件會彈出窗口
        #讓用戶處理,默認值為True,設定為False表示不會記錄打開未知MIME類型文件的方法
        profile.set_preference(‘browser.helperApps.alwaysAsk.force‘,False)

        #在開始下載時是否顯示下載管理器
        profile.set_preference("browser.download.manage.showWhenStaring",False)
        #設定為False會把下載框進行隱藏
        profile.set_preference("browser.download.manager.useWindow",False)
        #默認值為True,設定為False表示不獲取焦點
        profile.set_preference("browser.download.manager.alertonEXEopen",False)

        #
        #
        #
        profile.set_preference("browser.helperApps.neverAsk.openfile",
                               "application/pdf")

        profile.set_preference("browser.helperApps.neverAsk.saveToDisk",
                               "application/zip,application/octet-stream")

        profile.set_preference("browser.download.manager.showAlertonComplete",False)

        profile.set_preference("browser.download.manager.closeWhenDone",False)


        self.driver = webdriver.Firefox(executable_path="C:\\webdriver_firefox_driver",
                                        firefox_profile=profile)

    def test_dataPicker(self):
            #訪問webdriver的驅動firefox的驅動文件下載網址
            urll = "https://github.com/mozilla/geckodriver/releases"
            self.driver.get(urll)

            self.driver.find_element_by_xpath                (‘//strong[.="geckodriver -v0.11.1 - win64.zip"]‘).click()

            #等待文件加載
            time.sleep(10)

            url = "https://www.python.org/downloads/release/python - 2712/"
            self.driver.get(url)

            self.driver.find_element_by_link_text                ("Windows x86 -64 MSI installer").click()

            time.sleep(100)

    def tearDown(self):
        self.driver.quit()

if __name__ == "__main__":
    unittest.main()

  

webdriver高級應用 -無人工幹預地自動下載某個文件