zoukankan      html  css  js  c++  java
  • selenium.webdriver 下载文件操作的配置

    Chrome

    from selenium import webdriver
    from time import sleep
    # from selenium.webdriver.support import expected_conditions as ec
    # from selenium.webdriver.support.wait import WebDriverWait
    # from selenium.webdriver.common.by import By
    import os
    
    # 配置下载路径
    options = webdriver.ChromeOptions()
    # 0表示禁止弹出下载窗口, 下载目录使用os.getcwd()设置当前目录作为保存位置
    prefs = {'profile.default_content_settings.popups': 0,
             'download.default_directory': os.getcwd()}
    options.add_experimental_option('prefs', prefs)
    
    with webdriver.Chrome(options=options) as driver:
    
        driver.get('https://www.onlinedown.net/soft/5.htm')
        driver.maximize_window()
        driver.implicitly_wait(10)
        # 滚动条到底,加载网页内容
        driver.execute_script('window.scrollTo(100, document.body.scrollHeight);')
        sleep(5)
        # 这里driver 点击元素操作有点问题 所以使用的JS做点击下载的操作
        ele = driver.find_element_by_link_text('通用网络下载')
        driver.execute_script('arguments[0].click();', ele)
        sleep(20)
    

    Firefox

    from selenium import webdriver
    from time import sleep
    import os
    
    fp = webdriver.FirefoxProfile()
    # 设置为0,表示下载到默认路径;设置为2,表示下载到指定路径
    fp.set_preference('browser.download.folderList', 2)
    # 设置下载的保存位置,使用os.getcwd()获取当前路径
    fp.set_preference('browser.download.dir', os.getcwd())
    # 设置下载时不提示是否要开始下载
    fp.set_preference('browser.download.manager.showWhenStarting', False)
    # 指定要下载的文件类型,可以去 HTTP Content-type对照表查询,这里指定的是.exe文件
    fp.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/octet-stream')
    
    with webdriver.Firefox(firefox_profile=fp) as driver:
    
        driver.get('https://www.onlinedown.net/soft/5.htm')
        driver.maximize_window()
        driver.implicitly_wait(10)
        # 滚动条到底,加载网页内容
        driver.execute_script('window.scrollTo(100, document.body.scrollHeight);')
        sleep(5)
        # 这里driver 点击元素操作有点问题 所以使用的JS做点击下载的操作
        ele = driver.find_element_by_link_text('通用网络下载')
        driver.execute_script('arguments[0].click();', ele)
        sleep(20)
    

    HTTP Content-type对照表查询

    Firefox在浏览器地址栏输入about:config可以进行参数设置

  • 相关阅读:
    Linux下编辑、编译、调试命令总结——gcc和gdb描述
    scanf函数读取缓冲区数据的问题
    Windows下设置Ubuntu引导项
    前端术语汇总笔记(会保持更新)
    实现动态加载一个 JavaScript 资源
    提取一个字符串中的数字,并将其转为数组
    CSS3图片倒影技术
    js函数聚合
    js继承函数封装
    联动菜单实现思路
  • 原文地址:https://www.cnblogs.com/milesma/p/12333308.html
Copyright © 2011-2022 走看看