在UI自动化过程中,总会遇到文件上传的操作,一般的,标签为input,可以直接使用sendkeys

如果他仅仅是一个button,那则无法直接sendkeys,则需要用到autoIT这个工具

基于Autolt实现上传

1、下载并安装Autolt。官方网站:https://www.autoitscript.com/site/
2、安装成功后打开AutoIt Windows Info工具。鼠标点击Finder Tool变成扇叶指针,按住鼠标左键拖动到待识别的控件(文件名),获取控件信息。获得的文件名信息,其中Basic Window info中Title为“打开”,Class是“#32770”;Basic Control info中Class是“Edti”,instance是“1”
3、获取打开按钮的控件信息,方法同步骤2,记录获取到的信息
4、打开SciTE Script Editor编辑器,根据获取到的控件信息,编写脚本
 
WinWait()设置5秒用于等待上传窗口的显示
ControlFocus()把输入焦点定位到上传文本框中
ControlSetText()输入文件路径
sleep 等待上传时间,单位毫秒
ControllClick()点击打开按钮,开始上传
 
5、脚本编写完成后,可通过Tools-->GO运行脚本,运行正常,将其保存为.au3格式
6、打开Compile Script to.ext工具,将步骤5中生成的文件转换为exe可执行文件。
7、通过自动化测试脚本调用up.exe文件
#打开上传窗口
driver.find_element_by_xpath("//*[@id='filePicker']").click()
#调用up.exe文件
os.system("C:\Users\guorf\Desktop\up.exe")

【python+selenium自动化】基于Autolt实现上传的更多相关文章

  1. Selenium+java - 借助autolt完成上传文件操作

    写在前面: 上传文件是每个自动化测试同学会遇到,而且可以说是面试必考的问题,标准控件我们一般用sendkeys()就能完成上传,但是我们的测试网站的上传控件一般为自己封装的,用传统的上传已经不好用了, ...

  2. python + selenium +win32gui + winspy 实现图片上传

    过程:模拟点击上传按钮,打开Windows对话框,编辑栏输入文件路径(或网址)点击确定.网上随便找了一个进行测试. 点击后出现Windows上传对话框 用 winspy 来检测窗口的句柄 python ...

  3. Python开发篇——基于React-Dropzone开发上传组件

    这次我要讲述的是在React-Flask框架上开发上传组件的技巧.我目前主要以React开发前端,在这个过程中认识到了许多有趣的前端UI框架--React-Bootstrap.Ant Design.M ...

  4. Python+Selenium学习笔记10 - send_keys上传文件

    在火狐浏览器上传文件 上传前,同一个HTML文件在火狐和Edge浏览器显示有些不同 这是Firefox浏览器的显示 这是Edge浏览器 上传后 1 # coding = utf-8 2 3 from ...

  5. python+selenium基础篇,文件上传

    1.百度查询图片,上传文件 2.实现代码如下: from selenium import webdriverfrom time import sleepdr=webdriver.Firefox()dr ...

  6. Selenium2学习-039-WebUI自动化实战实例-文件上传下载

    通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a ...

  7. python selenium自动化点击页面链接测试

    python selenium自动化点击页面链接测试 需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回 ...

  8. 基于socket实现上传文件

    基于socket实现文件上传 客户端代码: #!/usr/bin/env python # -*- coding:utf-8 -*- """ 这个是实现上传文件 首先让客 ...

  9. python+selenium自动化登录dnf11周年活动界面领取奖励登录部分采坑总结[1]

    背景: Dnf的周年庆活动之一,游戏在6月22日 06:00~6月23日 06:00之间登陆过游戏后可以于6月25日 16:00~7月04日 06:00领取奖励 目标:连续四天自动运行脚本,自动领取所 ...

随机推荐

  1. quartz的学习和简单使用

    以前在框架中使用过,很多都是纯粹的复制粘贴,了解过用法知道如何配置,但时间久了就没什么印象了,现在重新捡起来,再次进行学习. quartz相关的介绍都已经很多了,我就不重复啰嗦,简单说一下个人的认识和 ...

  2. 第八讲 shiro 整合 ssm

    1.整合ssm并且实现用户登录和菜单权限 2.将shiro整合到ssm中 (1)添加shiro相关jar包 (2)在web.xml中添加shiro配置 <!-- 新增shiro配置 --> ...

  3. 一、left

    一.left - right 就是遍历(以左边遍历,以右边遍历) inner join 就是求公共部分的结果集 left join 查询结果 right join结果 inner join 解决的办法 ...

  4. 【学习】 015 Linux相关

    Linux入门 什么是Linux Linux简介 Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核.Linux可安装在各种计算机硬件设备中,比如手 ...

  5. git分支管理和工作流规范:不同场景细化和演示

    https://www.iteye.com/blog/qqtalk-2415889 前两篇介绍了 git基本概念 和 具体的规范,本篇针对不同的使用场景做演示. 分支 分支命名 master 分支名称 ...

  6. git概述(二)

    分支管理 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次 ...

  7. Linux下升级安装Python-3.6.9版本

    1.操作系统信息  (1)cat /etc/redhat-releas (2)Red Hat Enterprise Linux Server release 6.0 (Santiago) 2.安装开发 ...

  8. day04记

    useGeneratedKeys useGeneratedKeys这个只在insert语句中有效,正常情况下useGeneratedKeys默认为false 当useGeneratedKeys为tru ...

  9. 【JavaMail】JavaMail整合RabbitMq发送邮件案例

    前言 Linux安装RabbitMQ:https://www.cnblogs.com/jxd283465/p/11975094.html SpringBoot整合RabbitMQ:https://ww ...

  10. opencv入门教程三

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨)  ...