美文网首页
python3+selenium自动化测试-文件上传、下载10

python3+selenium自动化测试-文件上传、下载10

作者: C1R2 | 来源:发表于2020-09-01 21:46 被阅读0次

    (10)文件上传、下载
    对于Web页面的上传功能实现一般有以下两种方式:
    1、普通上传:普通的附件上传是将本地文件的路径作为一个值放在input标签中,通过form表单将 这个值提交给服务器。
    2、插件上传:一般是指Flash、Javascript、Ajax等技术所实现的上传功能。

    send_keys实现上传
    对于通过input标签实现的上传功能,可以将其看作是一个输入框,即通过send_keys()指定本地文件路径的方式实现文件上传。

    记得导入:import os

    file_path='file:///'+os.path.abspath('upfile.html')
    driver.get(file_path)
    upfile.html就是文件名称。

    AutoIt实现上传
    AutoIt目前最新版本是v3,它是一个使用类似BASIC脚本语言的免费软件,它被设计用来进行Windows GUI(图形用户界面)的自动化测试。它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。
    官方网站:https://www.autoitscript.com/site/
    这种方式不推荐使用,因为生成的exe文件不在python里面,不可控。

    代码参考如下:

    # coding:utf-8
    from selenium import webdriver
    import time
    
    
    # driver = webdriver.Firefox()
    driver = webdriver.Chrome()
    url = "https://www.baidu.com"
    driver.get(url)
    driver.maximize_window()
    driver.implicitly_wait(20)
    
    # 点击搜索框相机按钮
    driver.find_element_by_css_selector("#form > span.bg.s_ipt_wr.quickdelete-wrap > span.soutu-btn").click()
    time.sleep(3)
    
    # 文件路径,<input type="file"
    driver.find_element_by_class_name("upload-pic").send_keys(r"C:\Users\cr\Desktop\2020_08_26\01.png")
    
    time.sleep(5)
    # driver.quit()
    

    文件下载
    WebDriver允许我们设置默认的文件下载路径,也就是说,文件会自动下载并且存放到设置的目录中。
    为了让Firefox浏览器能实现文件下载,我们需要通过FirefoxProfile()对其做一些设置。

    browser.download.folderList

    设置成0代表下载到浏览器默认下载路径,设置成2则可以保存到指定目录。

    browser.download.manager.showWhenStarting

    是否显示开始;True为显示,Flase为不显示。

    browser.download.dir

    用于指定所下载文件的目录。Os.getcwd()函数不需要传递参数,用于返回当前的目录。 browser.helperApps.neverAsk.saveToDisk

    指定要下载页面的Content_type值,“application/octet-stream”为文件的类型。

    HTTP Content-type 常用对照表:http://tool.oschina.net/commons

    #下载文件
    from selenium import webdriver
    import os
    from time import *
    from selenium.webdriver.common.action_chains import ActionChains
    
    fp = webdriver.FirefoxProfile()
    fp.set_preference("browser.download.folderList",2)
    fp.set_preference("browser.download.manager.showWhenStarting",True)
    fp.set_preference("browser.download.useDownloadDir","F:\\下载")
    
    fp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/octet-stream")#下载文件的类型
    driver = webdriver.Firefox(firefox_profile=fp)
    driver.get("https://www.python.org/")#下载文件的URL
    driver.implicitly_wait(10)
    download = driver.find_element_by_link_text("Downloads")
    ActionChains(driver).move_to_element(download).perform()
    driver.find_element_by_link_text("Windows").click()
    driver.find_element_by_link_text("Latest Python 3 Release - Python 3.7.1").click()
    print("正在下载中")
    sleep(10)
    driver.quit()
    

    参考链接
    https://www.cnblogs.com/linxiu-0925/p/9599892.html
    https://www.cnblogs.com/yoyoketang/p/7655879.html

    相关文章

      网友评论

          本文标题:python3+selenium自动化测试-文件上传、下载10

          本文链接:https://www.haomeiwen.com/subject/zedhsktx.html