2015-03-13 63 views
0

試圖提取圖像,成功觸發「保存圖像爲...」對話框,但無法發送任何密鑰,有沒有辦法解決這個問題?有沒有辦法將密鑰發送到Selenium webdriver的「Save Image As ...」對話框?

driver = webdriver.Firefox() 
actions = webdriver.ActionChains(driver) 
actions.move_to_element(img).context_click(img).send_keys('v').perform() 

time.sleep(2) 

# and this line does not work 
actions.send_keys('image.jpg').perform() 

只有一步離開做一切工作,我該怎麼辦?

+1

硒主要用作自動化瀏覽網站的工具** **的測試。包含保存圖片作爲網站測試的一部分似乎很奇怪,因爲這對網站沒有任何作用。如果您的實際目標是從網站下載圖片,則無需爲此遠程控制瀏覽器。您只需要下載HTML,找到圖像,然後下載並保存該URL。可以使用大致相同數量的代碼來完成遠程控制使用硒的瀏覽器。 – deceze 2015-03-13 14:10:38

回答

1

這是一種不能用selenium控制的彈出窗口。

在這種情況下,你需要問的瀏覽器通過調整它的喜好(又名所需的功能)會自動保存文件

profile = webdriver.FirefoxProfile() 
profile.set_preference("browser.download.folderList", 2) 
profile.set_preference("browser.download.manager.showWhenStarting", False) 
profile.set_preference("browser.download.dir", "/path/to/file") 
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "image/jpeg") 

driver = webdriver.Firefox(firefox_profile=profile) 

其中browser.helperApps.neverAsk.saveToDisk設定值應該有一個MIME類型(或應該自動下載的文件的逗號分隔的mime類型列表)。

參見:

相關問題