seleinum上传文件

selenium 上传文件

  • 前端代码
 <html>
<meta http-equiv="content-type" content="txt/html; charset=utf-8" />
<body>

<form name="form1" method="post" enctype="multipart/form-data">
<label for="file">上传:</label>
<input type="file" name="file" id="file" />
<br />
<input type="hidden" name="multi" value="false"/>
<input type="submit" name="submit" value="提交" />
</form>

</body>
</html>
1、input标签上传

开发使用<input type="file" name=''filename">进行文件上传,则selenium可以使用最简单的send_keys()即可

import time
from selenium import webdriver
import os

driver = webdriver.Chrome()
driver.get(r"C:\Users\LGY\PycharmProjects\t1\123.html")
driver.find_element_by_id("file").send_keys(os.getcwd()+os.path.sep+"6.png")
time.sleep(3)
driver.quit()
  • 多个文件上传:
    如果上传支持多个文件上传:则把send_keys的值写成多个即可如:
    "C:\\1.py""D:\\2.py"
2、其他技术实现的文件上传
  • 使用第三方工具帮助上传,Autoit是用于Windows GUI的自动化测试IDE一个工具,通过它间接实现我们的需求。
  • 1、安装在本机,有以下目录:
    在这里插入图片描述
    2、可以用autoit window info获取脚本编写需要的title和controlID
    3、打开scite script editor 编辑器,打开autoit window info工具,点击上传的按钮,打开需要捕获的上传文件窗口

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
4、编写代码:
常用的代码:

  • WinActivate(“title”) :使焦点到指定活动窗口
  • ControlFocus ( “title”, “窗口文本”, controlID): 设置输入焦点到指定窗口的某个控件上;
  • WinWait ( “title” , “窗口文本” , 超时时间 ) :暂停脚本的执行,等待指定时间直至指定窗口;
  • ControlSetText ( “title”, “窗口文本”, controlID, “新文本” ): 修改指定控件的文本;
  • Sleep ( 延迟 ): 暂停指定时间,单位毫秒;
  • ControlClick ( “title”, “窗口文本”, 控件ID , 按钮 , 点击次数 ) 向指定控件发送鼠标点击命令;
  • 代码:
WinActivate("打开");
ControlSetText("打开","","Edit1","C:\Users\LGY\PycharmProjects\t1\6.png");
sleep(2000);
ControlClick("打开","","Button1");

简单使用

ControlFocus("打开","","Edit1") ;也可以替换WinActivate("打开");

代码参数来源分析:首先先鼠标左键点击finder tool,按住不动移动到指定的识别控件上,即可查看对应控件的信息
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
5、代码编写,完成保存脚本:
在这里插入图片描述
6、打开工具:
在这里插入图片描述
7、把*.au3文件转为exe文件
在这里插入图片描述

8、验证:点击上传的按钮,弹出对话框,直接双击运行刚刚生成的exe文件,则完成自动上传的步骤

9、在代码中使用:主要用到了python的os命令

import time
from selenium import webdriver
import os
driver = webdriver.Chrome()
driver.get(r"C:\Users\LGY\PycharmProjects\t1\123.html")
driver.find_element_by_id("file").click()
time.sleep(3)
os.system(os.getcwd()+os.path.sep+"123.exe")
time.sleep(3)
driver.quit()

10、文件中123.exe上传文件动态化
脚本修改为:

WinActivate("打开");
ControlSetText("打开","","Edit1",$CmdLine[1]);
sleep(2000);
ControlClick("打开","打开","Button1");

$CmdLine命令解析

$CmdLine[0]:命令行参数的总数
$CmdLine[1] :获取命令行的第一个参数
$CmdLine[2] :获取命令行的第二个参数
$CmdLineRaw :获取所有参数,为一个字符串

重新生成新的exe文件,python代码修改:

import time
from selenium import webdriver
import os
driver = webdriver.Chrome()
driver.get(r"C:\Users\LGY\PycharmProjects\t1\123.html")
driver.find_element_by_id("file").click()
time.sleep(3)
file_name = os.getcwd()+os.path.sep+"6.png"
os.system(os.getcwd()+os.path.sep+"123.exe"+" "+file_name)
time.sleep(3)
driver.quit()
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值