selenium+Autolt上传图片(非input属性)

原理说明:autoit它设计用于Windows GUI(图形用户界面)中进行自动化操作的一个程序,使用前需要安装,一般网站中图片上传会涉及到点击上传图片按钮就会弹出一个Windows的框用于选择图片,此时selenium就无法处理了,所以就采用autoit编写好脚本然后编译为exe,当ui自动化时调用exe就可以完成Windows那部分的操作,其余部分就让selenium去完成就行,当然有些图片上传的属性是input这种selenium是可以直接处理的通过send_keys上传文件即可,就不用autoit去处理了

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

2.安装
①双击autoit-v3-setup.exe开始安装,点击下一步
image
②点击“I Agree” 按钮同意协议;选择32位或64位,为了兼容性考虑,建议选择X86也就是32位
image
③一般选edit the script
image
④选择要安装的组件,选择全部组件
image
⑤选择安装路径,然后直到Finish为止

3.使用autoit
①选择Finder Tool(这个相当于一个定位的光标,将这个图标拖动需要定位的弹窗中)
image
image
红框中就是对于这个输入框的定位内容

②写脚本进行模拟,这个根据定位的框输入不同的值,一般界面用这个代码即可
image
ControlFocus("打开","","Edit1");
WinWait("[CLASS:#32770]","",2)
ControlSetText("打开","","Edit1","C:\Users\86184\Desktop\1.png");
Sleep(1000);
ControlClick("打开","","Button1");

③将编译的脚本保存为后缀为.au3的文件
④打开编译的程序
image
image
image

4.ui自动化中调用编译好的exe文件,来模拟图片上传
self.bp.find_element(*tenantloc.tenant_picture_click).click() #先点击网站中的图片上传按钮
os.system("D:\autoit\AutoIt3\SciTE\1.exe") #调用autoit编译的exe进行图片上传
这样就可以成功的将图片进行上传了

posted @ 2023-03-06 14:21  sriver_dl  Views(134)  Comments(0Edit  收藏  举报