zoukankan      html  css  js  c++  java
  • 上传文件

     

    上传文件

    input标签

    sand_keys() :实现上传(上传为input标签)

    sand_keys()括号里输入本地文件路径的方式实现文件上传功能

    input标签

    input标签,上传方法要借助Autolt工具或者SendKeys第三方库

    测试html文件

    <html>

    <head>

    <meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>upload_file</title><link href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" />

    </head>

    <body>

      <div class="row-fluid">

        <div class="span6 well">

        <h3>upload_file</h3>

          <input type="file" name="file" />

        </div>

      </div>

    </body><script src="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.js"></script></html>

    Autolt

    下载安装autolt

    下载Autolt官方网站:https://www.autoitscript.com/site/

     

    AutoIT Windows Info : 用于识别window空间信息

    Compile Script to .exe : 用于将AutoIT生成exe执行文件

    Run Script : 用于执行AutoIT脚本

    SciTE Script Editor : 用于编写AutoIT脚本

    元素定位

    1.首先打开 AutoIt Windows Info 工具,鼠标点击 Finder Tool,鼠标将变成一个小风扇形状的图标,按住鼠标左键拖动到需要识别的控件上。 

    窗口的Title文件上传”,标题的Class“#32770”

    文件名输入框的Class “Edit”Instance“1” ,所以ClassnameNN“Edit1”

    打开按钮的Class “Button”Instance“1” ,所以ClassnameNN“Button1”

    注:不通浏览器下对应参数值不同,必须在特定浏览器下执行特定浏览器的参数才能达到特定的效果

    脚本编写

    1.根据 AutoIt Windows Info 所识别到的控件信息打开 SciTE Script Editor 编辑器,编写脚本。 

     

    ControlFocus("文件上传", "","Edit1")

    WinWait("[CLASS:#32770]","",10)

    ControlSetText("文件上传", "", "Edit1", "C:UsersyueliDesktop.html")

    Sleep(2000)

    ControlClick("文件上传", "","Button1");

    ControlFocus()方法用于识别 Window 窗口。

    WinWait()设置 10 秒钟用于等待窗口的显示,其用法与
    WebDriver 所提供的 implicitly_wait()类似。

    ControlSetText()用于向“文件名”输入框内输入本地文件的路径。

    Sleep()方法与 Python time 模块提供的 Sleep()方法用法一样,不过它是以毫秒为单位,Sleep(2000)表示固定休眠 2000 毫秒。

    ControlClick()用于点击上传窗口中的“打开”按钮。 

    2.AutoIt 的脚本已经写好了保存一下,可以通过菜单栏“Tools”-->“Go” (或按键盘 F5)来运行一个脚本吧!注意在运行时上传窗口当前处于打开状态。 

    脚本运行正常,将其保存为 xxx.au3,这里保存的脚本可以通过 Run Script 工具将其打开运行

    生成exe文件

    我们的目的是希望这个脚本被 Python 程序调用,那么就需要将其生成 exe 程序。打开 Compile Script to.exe工具,将au3文件生成为 exe 可执行文件。 

    下面就是通过自动化测试脚本调用 file.exe 程序实现上传了。 

    参数化

    因为打包的exe文件把文件路径给写死了,每次只能上传固定地址的文件,我们实际测试时候希望传不同文件地址,这样就需要参数化文件路径了。想要参数化传入的参数,可以通过autoit的命令行参数

    在脚本中,可用以下变量获取命令行参数

    $CmdLine[0] :获取的是命令行参数的总数,

    $CmdLine[1]~$CmdLine[63] :获取的是命令行参数第1到第63位,这个方式最多只能获取63个参数,不过正常情况下是足够用的
    $CmdLineRaw 获取的是未拆分的所有参数,是一个长字符串,这种情况下不局限与63个参数

    接上面实例继续,将文件地址改为参数化,代码如下

    ControlFocus("文件上传", "","Edit1")

    WinWait("[CLASS:#32770]","",10)

    ControlSetText("文件上传", "", "Edit1", $CmdLine[1])

    Sleep(2000)

    ControlClick("文件上传", "","Button1");

    生成exe文件后继续

    下面就是通过自动化测试脚本调用.exe 程序实现上传了。 

    os.system() : 传入一个字符串参数,中间用空格隔开,前面是exe文件地址 后面是要上传的文件地址

    SendKeys

    首先要先安装SendKeys

    1.如果安装pip,直接pip install SendKeys

    2.安装包下载地址:https://pypi.python.org/pypi/SendKeys,

    直接下载zip安装包,进入解压后的目录,地址栏输入cmd,进入dos在命令行,输入python setup.py install回车,自动安装

    如果安装过程中提示Get it from http://aka.ms/vcpython27 如下图,直接按照这个地址下载文件,傻瓜式的安装就可以了

     

  • 相关阅读:
    HTML页面之间跳转传值
    Ajax之三种数据传输格式
    css选择器
    jQuery Validate
    正则表达式
    JSP的九大内置对象,七大动作指令,四个作用域,三个编译指令
    Zooeeper之paxos算法
    ZooKeeper之选举(fastleaderelection算法)
    ZooKeeper之ZAB协议
    ZooKeeper之三阶段提交(3PC)
  • 原文地址:https://www.cnblogs.com/yueli85627/p/9173376.html
Copyright © 2011-2022 走看看