Nor*_*dow 5 python firefox selenium
我正在使用 selenium 和 python 从这个网页下载某些文件。我以前一直使用设置首选项来创建 Firefox 配置文件,它们运行得非常好。在这种情况下,下载弹出窗口在同一页面上打开,尽管给定首选项,它总是打开弹出窗口进行操作(保存/打开)。有人可以帮助绕过它并自动下载文件而不弹出警报吗?
首选项设置为:
fp = webdriver.FirefoxProfile()
        fp.set_preference("browser.download.folderList", 2)
        fp.set_preference("browser.download.manager.showWhenStarting", False)
        fp.set_preference("browser.download.dir", downloadDir)
        fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")
        self.driver = webdriver.Firefox(firefox_profile=fp)
Run Code Online (Sandbox Code Playgroud)
谢谢,除了下面提到是否需要完整代码:
# -*- coding utf-8 -*-
from selenium.webdriver.firefox.options import Options
from selenium import webdriver
import time
import os
import shutil
import uuid
class crawlOcean():
    def __init__(self):
        print("hurray33")
        global downloadDir
        downloadDir = ""
        fp = webdriver.FirefoxProfile()
        fp.set_preference("browser.download.folderList", 2)
        fp.set_preference("browser.download.manager.showWhenStarting", False)
        fp.set_preference("browser.download.dir", downloadDir)
        fp.set_preference("browser.helperApps.neverAsk.saveToDisk",
                          "text/plain, application/octet-stream, application/binary, text/csv, application/csv, application/excel, text/comma-separated-values, text/xml, application/xml")
        fp.set_preference("pdfjs.disabled", True)
        options = Options()
        options.add_argument("--headless")
        self.driver = webdriver.Firefox(firefox_profile=fp)
        #self.driver = webdriver.Firefox()
        print("hurray")
        self.driver.implicitly_wait(15)
        self.driver.get("http://www.oceanenergyireland.com/testfacility/corkharbour/observations")
        self.verificationErrors = []
        self.accept_next_alert = True
    def crawl(self):
        print("see")
        driver = self.driver
        driver.execute_script("window.scrollTo(0, 600)")
        index = 0
        driver.switch_to.frame(index)
        driver.find_element_by_xpath("//div[@id='CorkTideHeight']/div[3]/button[2]").click()
        time.sleep(3)
        driver.find_element_by_xpath("//div[@id='CorkTideHeight']/div[3]/div/ul/li[5]").click()
        time.sleep(5)
if __name__ == '__main__':
    obj = crawlOcean()
    obj.crawl()
Run Code Online (Sandbox Code Playgroud)
    而不是text/csv. 尝试attachment/csv,它正在工作。实际上这个下载文件是在 javascript 本身中生成的,他们已经设置了这样的自定义数据类型。
    fp = webdriver.FirefoxProfile()
    fp.set_preference("browser.download.folderList", 2)
    fp.set_preference("browser.download.manager.showWhenStarting", False)
    fp.set_preference("browser.download.dir", downloadDir)
    fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "attachment/csv")
    self.driver = webdriver.Firefox(firefox_profile=fp)
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           7055 次  |  
        
|   最近记录:  |