python使用webdriver处理上传文件(使用AutoIt)

一、前言

在使用python+webdriver做web自动化时,遇到上传本地文件时,无法通过webdriver进行处理。这是需要借助于第三方工具来解决此问题。下面就将介绍这个工具(AutoIt)的使用方法。

二、AutoIt的使用

2.1、AutoIt的下载与安装

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

下载后,直接点击exe文件进行安装,这里我就不鸡婆了。

2.2、AutoIt的使用

安装后,在电脑所有程序中会与AutoIt v3文件夹,点开,里面会有AutoIt Window Info(x64)、Compile Script to .exe(x64)、SciTE Script Editor三个启动程序程序(win7,win10点击开始—所有程序;win8自己去程序中一个个搜索吧),如果没有,自己重装吧。

2.2.1、AutoIt Window Info(x64)

点击自动这个程序

这个工具是获取上传窗口的一些信息,使用方式就是将Finder tool直接拖到需要捕获的控件上

获取文本框信息

获取打开按钮信息

2.2.2、SciTE Script Editor

打开工具,输入上面获取到的控件信息,保存成upfile.au3;

;ControlFocus("title", "text", controlID) Edit1=Edit instance 1
ControlFocus("文件上传", "","Edit1")

;Wait 10 seconds for the Upload window to appear
WinWait("[CLASS:#32770]", "",10)

;Set the File name thext on the Edit field
ControlSetText("文件上传", "", "Edit1", "E:\Python\20170109(pyton+selenium)\test.png")
Sleep(2000)

;Click on the Open button
ControlClick("文件上传", "", "Button1");

2.2.3、Compile Script to .exe(x64)

使用此工具,将上面的upfile.au3转成可执行的exe文件

到此时,你已搞定本地上传问题了,接下来只需要在脚本中调用此exe可执行文件即可

python脚本调用示例如下:

os.system("E:\Python\upfile.exe")

时间: 2024-08-08 09:32:52

python使用webdriver处理上传文件(使用AutoIt)的相关文章

Python模拟HTTP Post上传文件

使用urllib2模块构造http post数据结构,提交有文件的表单(multipart/form-data),本示例提交的post表单带有两个参数及一张图片,代码如下: #buld post body data boundary = '----------%s' % hex(int(time.time() * 1000)) data = [] data.append('--%s' % boundary) data.append('Content-Disposition: form-data;

python使用post方式上传文件

前言:由于项目需求做的接口测试有上传文件这一要求,在查资料时候发现用requests来做上传文件很简单,所以下了这个库来完成.后续有时候会看看能不能用传统地urllib2来做. 首先你要有个requests: https://github.com/kennethreitz/requests 然后把它import进来 接着: def post(self,url,param_dict,param_header,file = '',param_type = 'x-www-form-urlencode'

Python下使用ftplib上传文件到ftp上

生产情况:tomcat下业务log备份,目录分多级,然后对应目录格式放到ftp上:所以,结构上 我就是一级一级目录进行判断(因为我没有找到在ftp一次判断其子目录是否存在),还有一个low点就是我没有找到怎样一次性的调用ftp的login因为现在每次判断都需要登录一下,最终功能是实现了:想着先贴出来 #!/usr/local/bin/python3.5 ###Description: 上传业务log到FTP199 ###Author: Tonny.Deng ###DateTime: 2016-1

Python学习之socket上传文件

#服务器 import socketserver,json,os class MyTCPHandler(socketserver.BaseRequestHandler): # handle() # 执行完就断开,处理和客户端的所有交互 def put(self,*args): #接受客户端文件 cmd_dic = args[0] # 传进来的是 字典cmd_dic # print(cmd_dic) # b'{"action": "put", "filena

python paramiko利用sftb上传文件到远程

import paramikoimport osclass Linux(object): # 通过IP, 用户名,密码,超时时间初始化一个远程Linux主机 def __init__(self, ip, username, password, timeout=30): self.ip = ip self.username = username self.password = password self.timeout = timeout # transport和chanel self.t = '

selenium 上传文件之AutoIt

1.下载地址:https://www.autoitscript.com/site/ 2. 通过这个进行下面操作 3. 4. 通过这个编写[注意“打开”是你 当前的弹层名字:保存格式为au3,如upload.au3] ;ControlFocus("title","text",controlID) Edit1=Edit instance 1ControlFocus("打开", "","Edit1") ; Wai

SFTP基于Key多进程批量并发上传文件实现案例(python)

最近在研究Paramiko,Paramiko可以非常方便的实现基于SSH协议的远程连接,可以基于 口令,也可以无口令RSA非对称密钥,亦可以实现SFTP上传下载操作,安全高效,再结合多 进程或者是多线程就可以实现并行处理,写了一个简单的SFTP基于Key多进程批量并发上传 文件的实现案例,供以后参考. 安装加密模块和Paramiko模块 下载:pycrypto-2.6.1.tar.gz paramiko-1.10.1.tar.gz 安装: tar -zxf pycrypto-2.6.1.tar.

python实例编写(3)--对话框,多窗口,下拉框,上传文件

一.对话框: 例:点击百度的登录,弹出的小窗口 #coding=utf-8 from selenium import webdriver from time import sleep dr=webdriver.Chrome() dr.get("http://www.baidu.com") #一定要记得设置等待时间,要不然定位不到!!! dr.find_element_by_link_text("登录").click() sleep(3) #思路:二次定位,点击登录后

python requests上传文件 tornado 接收文件

requests 上传文件 import requests def images(): url = 'http://127.0.0.1:8889/upload/image' files = {'file': open('desktop.png', 'rb')} multiple_files = [ ('file', ('11.png', open('11.png', 'rb'), 'image/png')), ('file', ('desktop.png', open('desktop.png'