• Selenium系列之--06 文件上传&文件下载


    一、文件上传

    1.1 上传文件框的TagName为input形式

    • 首先定位上传按钮
    • 发送要上传的文件
    driver.findElement(By.id("XX")).sendKeys("D:\20.jpg");

    1.2 上传文件框不是input形式------使用AutoIT

    • autoIT3工具介绍:AutoIT是一个类似脚本语言的软件,利用此软件我们可以方便的实现模拟键盘、鼠标、窗口等操作,实现自动化。利用AutoIT编写合适的脚本,然后将脚本编译成可执行文件,在自动化实现时,直接调用此脚本实现文件上传。下载地址

      常用的三个组件:

    • AutoIT Window Info(x64) :用来定位
    • SciTE Script Editor :用来写脚本
    • Compile Script to .exe(x64):用来转换成exe
    ControlFocus("选择要上载的文件,通过: pcistest.zsins.com","","Edit1")
    
    ControlSetText("选择要上载的文件,通过: pcistest.zsins.com","","Edit1","""C:UsersPublicPicturesSample PicturesLighthouse.jpg""""C:UsersPublicPicturesSample PicturesChrysanthemum.jpg""")
    
    ControlClick("选择要上载的文件,通过: pcistest.zsins.com","","Button2")
    
    ControlClick("选择要上载的文件,通过: pcistest.zsins.com","","Button2")

    测试是否成功的方法:

      在浏览器中测试:

    • 点击上传文件按钮后,弹出选择文件框,运行脚本时,要保证此窗口打开状态,在SciTE Script Editor中点击Tools的GO,即可运行成功。如图

    1.3 上传文件框不是input形式------用robot类

    //第三种方法,用robot类(jdk自带)控制模拟键盘操作

    Thread.sleep(1000);
    String path =  "D:\image\QQ图片2.jpg";
    //图片或文件的路径
    
    StringSelection stringSelection = new StringSelection(path);
    //指定图片的路径,使用相对路径
    Toolkit.getDefaultToolkit().getSystemClipboard()
            .setContents(stringSelection, null);
    //把图片路径复制粘贴到剪切板
    
    Robot robot = new Robot();
     robot.keyPress(KeyEvent.VK_ENTER);
        //按下Enter键
     robot.keyRelease(KeyEvent.VK_ENTER);
       //释放Enter键
    
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_V);
    //按下Ctrl+V
    robot.keyRelease(KeyEvent.VK_CONTROL);
    robot.keyRelease(KeyEvent.VK_V);
    //释放Ctrl+V
    
    robot.keyPress(KeyEvent.VK_ENTER);
    //再次点击Enter键
    robot.keyRelease(KeyEvent.VK_ENTER);
    //再次释放Enter键
    
    Thread.sleep(5000);

    二、文件下载

    参考 https://www.jianshu.com/p/b03ef6ffc4a5

    【Quality】 Quality is the value to someone who matters。做测试,首先要找到这个someone是谁,以及这个 someone重视的 value是什么。
  • 相关阅读:
    23种设计模式
    外部排序:选择置换、败者树
    java代理模式
    java中抽象类和接口的异同(原文作者:博客园 海子)
    java中的垃圾回收
    进程
    C标准库-数值字符串转换与内存分配函数
    文件操作
    字符串操作
    C指针(二)
  • 原文地址:https://www.cnblogs.com/liuyitan/p/11396314.html
Copyright © 2020-2023  润新知