zoukankan      html  css  js  c++  java
  • 8. 上传文件和下载文件

    前提:1. 在当前目录下放HTML文件: upload.html; 2. 再放一个上传的测试文件:upload_pic.png

    一、上传文件

    1、借用send_keys()的方式

    <!DOCTYPE html>  
    <html>  
        <head>  
            <meta charset="utf-8" />  
            <title>hello</title>  
        </head>  
        <body>  
            <form action="testform.php"method="get">  
            	请选择上传的多个文件:
            	<input type="file" name="img"multiple="" />
        </body>  
    </html>

     注意:只有input标签下的type等于file才可以使用send_keys的方式

    具体如下:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from time import sleep
    from os.path import abspath,dirname
    
    driver = webdriver.Chrome()
    driver.maximize_window()
    file_path = dirname(abspath(__file__)) #abspath获取当前文件的绝对路径, dirname获得上级目录
    upload_page = file_path+r'upload.html'  #拼接html文件的路径
    upload_pic = file_path+r'upload_pic.png'
    driver.get(upload_page)
    
    sleep(2)
    driver.find_element(By.NAME,'img').send_keys(upload_pic) #定位到上传按钮,并且传文件路径给它
    sleep(2)
    driver.quit()

     2、AutoIT插件上传文件 (当上传按钮不在input标签中时)

    参考文章:https://blog.csdn.net/qq_36800800/article/details/82189143 

    二、下载文件

    # -*- coding: utf-8 -*-
    
    from selenium import webdriver
    from time import sleep
    import os
    
    options = webdriver.ChromeOptions()
    prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': os.getcwd()}
    #download.default_directory:设置下载路径
    #profile.default_content_settings.popups:设置为 0 禁止弹出窗口
    
    options.add_experimental_option('prefs', prefs)
    
    driver = webdriver.Chrome( chrome_options=options)
    driver.maximize_window()
    driver.get("https://pypi.org/project/selenium/#files")
    sleep(2)
    driver.find_element_by_partial_link_text("selenium-3.141.0.tar.gz").click()
    sleep(3)
    
    
    '''
    #下面是通过FireFox的方式
    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")
     
    driver = webdriver.Firefox(firefox_profile=fp)
    driver.get("http://pypi.Python.org/pypi/selenium")
    driver.find_element_by_partial_link_text("selenium-3.11.0-py2.py3-none-any").click()
    '''
    

      

  • 相关阅读:
    阶段一 第一周 2-5 2-6 构建maven聚合工程
    阶段一 第一周 2-3 前后端分离开发模式讲解
    阶段一 第一周 2-2前后端技术选型
    Linux基础
    SpringMVC复习
    电商航线整理
    Mybatis整理复习
    python re正则
    爬虫基础 简单正则
    mysql 备份 恢复 事物 ER模型 pymysql交互
  • 原文地址:https://www.cnblogs.com/lintest/p/11721593.html
Copyright © 2011-2022 走看看