2016-05-06 47 views
0

pythonでseleniumツールを使用して.csvファイルをダウンロードしようとしていますが、Webページのファイルリンクを保存した後、ブラウザがダイアログボックスを表示しています。これを処理するために「警告」を試みましたが、警告はありません.... 私はツールとしてスクリプト言語とセレンとしてPythonを使用しています。 は、ここに私のコードです:PythonでSeleniumを使用してFirefoxでファイルを保存ダイアログボックスを処理する方法は?

fp = webdriver.FirefoxProfile() 
fp.set_preference('browser.download.folderList', 2) # custom location 
fp.set_preference('browser.download.manager.showWhenStarting', False) 
fp.set_preference('browser.download.dir', 'C:\Temp\') 
fp.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/csv,text/csv,text/comma-separated-values, application/octet-stream') 
driver = webdriver.Firefox(profile) 
driver.window_handles 
driver.swich_to_window(driver.window_handles[0]) 
url='' 
driver.get(url) 
pass=driver.find_element_by_id('pswd') 
pass.send_keys('xyz123') 
driver.find_element_by_id('btnLogin').click() 
driver.implicitly_wait(30) 
driver.find_element_by_link_text('FileName').click() 
driver.switch_to_alert().accept() 
+0

ファイルの正確なMIMEタイプは? –

答えて

3

/*最後に、私は、保存ファイルダイアログボックスで行われています。私はいくつかのFirefoxプロファイル設定でそれを処理しました。私は正確なMIMEタイプを見つけることができなかったので、私は可能な限りすべて使用しました。 以下は、[ファイルを保存]ダイアログボックスを処理するコードです。*/

fp = webdriver.FirefoxProfile() 
fp.set_preference('browser.download.folderList', 2) 
fp.set_preference('browser.download.manager.showWhenStarting', False) 
fp.set_preference('browser.download.dir', 'C:\Temp\') 
fp.set_preference('browser.helperApps.neverAsk.openFile', 'text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml') 
fp.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml') 
fp.set_preference('browser.helperApps.alwaysAsk.force', False) 
fp.set_preference('browser.download.manager.alertOnEXEOpen', False) 
fp.set_preference('browser.download.manager.focusWhenStarting', False) 
fp.set_preference('browser.download.manager.useWindow', False) 
fp.set_preference('browser.download.manager.showAlertOnComplete', False) 
fp.set_preference('browser.download.manager.closeWhenDone', False) 
driver = webdriver.Firefox(fp) 
driver.window_handles 
driver.swich_to_window(driver.window_handles[0]) 
url='' 
driver.get(url) 
pass=driver.find_element_by_id('pswd') 
pass.send_keys('xyz123') 
driver.find_element_by_id('btnLogin').click() 
driver.implicitly_wait(30) 
driver.find_element_by_link_text('FileName').click() 
time.sleep(5) 
関連する問題