1. 程式人生 > >利用Selenium Webdriver 2.0 實現從Web自動儲存檔案到本地

利用Selenium Webdriver 2.0 實現從Web自動儲存檔案到本地

接上篇,本篇講怎麼從Web下載檔案。原生問題是,從web頁面點選hyperlink去下載某個檔案時,會彈出windows模式對話方塊,選擇儲存路徑或開啟方式。為了繞開Windows的參與,就要求助Selenium Webdriver。相對通過Web上傳檔案來說,自動下載檔案要複雜不少。




網際網路給出了很多類似的答案,說明這個已經不是技術問題,摘取一個供參考:http://selenium-python.readthedocs.org/faq.html (No. 8.4). 


還是以Selenium Webdriver + Python為例:


import os

from selenium import webdriver

fp = webdriver.FirefoxProfile()

fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting"
,False) fp.set_preference("browser.download.dir", os.getcwd()) fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream") browser = webdriver.Firefox(firefox_profile=fp) browser.get("http://pypi.python.org/pypi/selenium") browser.find_element_by_partial_link_text("selenium-2"
).click()



這個問題原理是說,要修改瀏覽器的Profile (以Firefox為例),讓它能夠在不顯示Windows對話方塊的前提下,自動儲存檔案到某個地方。


這裡又有個問題困擾了我這個初學者。那些個set_preference()裡面的第一個引數是從哪來的?在哪定義的?翻遍了Webdriver的API文件也找不到。原來,它們就是firefox的執行引數,通過about:config可以看到並修改。方法:

1. 開啟Firefox瀏覽器

2. 在位址列輸入about:config

3. 回車

想通過Webdriver修改firefox的profile,引數在這裡都可以找到。


前端知識何其之匱乏。究其原因,不是自己見識寡,就是身邊牛人少。