selenium2 python自动化测试之利用AutoIt工具实现本地文件上传

本人在学习基于python语言的selenium2自动测试方法的过程中,发现涉及本地上传文件的测试时,selenium2在定位本地window窗口的对象(元素)上能力有限。当上传按钮使用的是input标签时,可以使用send_keys()方法添加本地文件路径轻松实现,但有的上传控件使用的不是input元素,这个时候send_keys()方法是行不通的。经过网上搜索加上自己实践,总结出一个非常简单而有效的方法——借用AutoIt工具实现自动化本地上传文件,在此与大家分享。

1、AutoIt介绍及安装

AutoIt是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作,它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。

官方下载地址:https://www.autoitscript.com/site/

下载并安装成功后,在开始菜单中可以看到AutoIt工具,如下图所示:

AutoIt Window Info: 用于识别Windows控件信息

Compile Script to.exe: 用于将AutoIt编写的脚本转换成可执行的文件

Run Script: 用于执行AutoIt脚本

SciTE Script Editor: 用于编写AutoIt脚本

2、使用方法及步骤

(1)打开AutoIt Window Info工具,用它进行定位windows GUI(windows界面)元素,界面如下图,

以从本地电脑上传一张图片为例(如下图),点击“创建创意素材”按钮,

弹出文件上传框:

然后切换到之前打开的AutoIt Window Info工具,找到Finder Tool,鼠标点击Finder Tool中的小风扇图标,鼠标变成可移动的小风扇图标状,按住鼠标左键拖动到文件上传弹框的文件名输入框上,记下Class为Edit,Instance为1

同理,用同样方法,获取“打开”按钮的Class为Button,Instance为1

(2)根据AutoIt Window Info所识别的控件信息,打开SciTE Script Editor编辑器,编写脚本:

脚本写好后,点击Tools->Go,运行脚本。

(3)脚本运行正常,打开安装程序下的Compile Script to .exe工具,将脚本转换成可执行文件,如下图。此可执行文件可被python程序调用

点击browser按钮,选择编好的脚本upload.au3,点击Convert按钮将其转换成可执行的.exe文件

(4)通过python自动化测试脚本调用upload.exe文件,实现自动化上传

时间: 2024-09-29 23:53:44

selenium2 python自动化测试之利用AutoIt工具实现本地文件上传的相关文章

利用SecureCRT工具将本地文件上传到虚拟机的linux系统上

1.启动虚拟机,打开Linux终端,输入ifconfig命令查看IP地址 2.使用SecureCRT上传文件(1)连接虚拟机,输入第一步的ip地址和虚拟机的登录账号(2)输入虚拟机的登录账号.密码 (3)登录成功显示的界面(4)点击已连接窗口,右键选择连接sftp (4)将对应的文件拖入该窗口(4)该文件上传成功,在root目录下 原文地址:https://blog.51cto.com/13729775/2419638

利用Socketserver实现简单的文件上传

利用Socketserver实现简单的文件上传 server.py #!/usr/bin/env python #coding:utf-8 import SocketServer import os class MyServer(SocketServer.BaseRequestHandler):     def handle(self):         base_path = 'C:/temp'         conn = self.request                 print

利用spring的MultipartFile实现文件上传【原】

利用spring的MultipartFile实现文件上传 主要依赖jar包 spring-web-3.0.6.RELEASE.jar 用到 (org.springframework.web.multipart.MultipartFile)commons-fileupload-1.3.1.jarcommons-logging-1.0.4.jar 前台 <!DOCTYPE html> <html lang="en"> <head> <meta ch

在Servlet中利用Apache开源类库实现文件上传

本文结合具体的范例,介绍如何通过Apache开源类库提供的软件包,在Servlet中进行文件上传.本文的参考书籍是<Tomcat与Java Web开发技术详解>第三版,作者:孙卫琴. 本文所用的软件版本为:Window10,JDK10,Tomcat9.本文所涉及的源代码的下载网址为:http://www.javathinker.net/javaweb/upload-app.rar Apache开源软件组织提供了与文件上传有关的两个软件包:? fileupload软件包(commons-file

漏洞利用:验证绕过,XSS利用,Cookic盗用,文件上传

1.      文件上传 低级别 写好上传的内容 选择好上传的文件 上传成功. 测试:访问文件,执行代码 中级别 修改文件后缀为png 上传该文件 抓包修改文件后缀为php,然后允许数据包通过. 上传成功 测试:访问文件,执行代码 2.      验证码绕过 首先将秘钥添加到配置文件 低级别 step值1,有验证,step值2,无验证,所以将数据包step值修改为2,然后发送即可绕过. 中级别 将数据包step值修改为2,并添加passed_captch=true,然后发送即可绕过. 3.   

FastDFS 工具类实现文件上传_02

一.jar 包 jar包下载:https://pan.baidu.com/s/1nwkAHU5 密码:tlv6 或者 下载工程,安装到 maven 本地仓库 工程下载:https://pan.baidu.com/s/1i6SIm3b 密码:jkjt 二.工具类代码 package com.common.fastFDS; import org.csource.common.NameValuePair; import org.csource.fastdfs.ClientGlobal; import

利用Python代码实现 Hexo服务启动以及本地文章上传

Hexo 本地文章上传至GitHub import subprocess # Windows Shell cmd = "F:" + "&&" + 'cd Hexo_blog' + "&&" + 'hexo g' + "&&" + 'hexo d' p = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE) print(p

Python实现简单的HTTP服务器(支持文件上传下载)

1.python内置模块 SimpleHTTPServer  (支持下载功能) 在对应的工作目录下,运行命令python -m SimpleHTTPServer 即可把当前目录下以共享服务的形式共享出去. 外部访问可通过访问:http://ip:端口号来访问  (默认端口为8000) 可指定端口: python -m SimpleHTTPServer 8081 2.Woof模块 http://www.home.unix-ag.org/simon/woof.html 3.Droopy模块  (支持

利用bootsrap控件 实现文件上传功能

一.jsp页面 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@ page buffer="16kb"%> 3 <% 4 String path = request.getContextPath(); 5 String basePath = request.getScheme()+":