前言:这个是在悠悠博客中学到的方法,本来不打算记录的,但是由于编码时很粗心,报错解决了一个多小时,所以还是记录下,以便记忆更深刻。

适用场合:非input文件上传

04568c006e2c6565c21a1c7cdb9c0e6b.png

1、环境准备

3d79717d4bc81cdb0a288ca1a97710c2.png

2、在开始菜单中查看安装成功后的文件

f7218f575d8172871be8bad9c8da00ac.png

3、AutoIt里面几个菜单功能介绍:

SciTE Script Editor 编辑器,在这里编写AutoIt脚本

AutoIt Windows Info 元素定位器,用于识Windows控件信息

Run Script 执行AutoIt脚本

Compile Script to.exe 将AutoIt生成 .exe 可执行文件

4、定位本地文件所在位置

操作步骤:

(1)点击上传按钮

(2)进入要上传文件所在的位置

(3)在开始中打开AutoIt Windows Info 工具

(4)拖动Finder Tool 至本地弹框的文件名输入框中,AutoIt Windows Info中显示如下图:

1ea73143eabb3c8ffe8320643d7c8e57.png

(5)拖动Finder Tool 至本地弹框的打开按钮上,AutoIt Windows Info中显示如下图:

3e5b0c115b591f2951fd1c86ddc24e0f.png

5、在开始中打开 SciTE Script Editor编辑器,编写执行脚本

ddec92865300cf98ea47a6d62acd5c12.png

autoit几个常用的语法:

WinActivate("title") 聚焦到指定活动窗口

ControlFocus ( "title", "窗口文本", controlID) 设置输入焦点到指定窗口的某个控件上;

WinWait ( "title" , "窗口文本" , 超时时间 ) 暂停脚本的执行直至指定窗口存在(出现)为止;

ControlSetText ( "title", "窗口文本", controlID, "新文本" ) 修改指定控件的文本;

Sleep ( 延迟 ) 使脚本暂停指定时间,单位是毫秒;

ControlClick ( "title", "窗口文本", 控件ID , 按钮 , 点击次数 ) 向指定控件发送鼠标点击命令;

命令行参数:

$CmdLine[0] 获取的是命令行参数的总数

$CmdLine[1]~$CmdLine[63] 获取的是命令行参数第1到第63位,这个方式最多只能获取63个参数,不过正常情况下是足够用的

$CmdLineRaw 获取的是未拆分的所有参数,是一个长字符串,这种情况下不局限与63个参数

注意:编写执行脚本时一定带上instance这个参数,否则无法跳到要上传的文件路径!!!

3164c82a8a52eaf2c3038af79e83c81e.png

将以上编写好的执行脚本另存为   .au3 结尾的文件

1b4183af979f277d0d9f180bdea4f542.png

46dd9b2fc7807e7b273492ad2bb81feb.png

6、将执行脚本转换为  .exe结尾的文件

在开始菜单中打开

17ab0153a53e34674aa73e80fd87eb82.png 这个工具,选择执行脚本和exe文件保存路径,点击“convert”按钮即可

6e2672a40b5a1f19c1c98c0ad39c9edb.png

下图为生成的 .exe 文件

8ef7978adc2a158a0dab20a706c0247e.png

9bdbcba5c9767984785f63b1113951e3.png  + R  快捷键打开cmd命令窗口,拖入刚转化的exe文件及要上传的文件路径(两个路径间有个空格),回车,如下图则执行成功

7e21668b246d4ddefc85c83d59d931e9.png

7、代码编写

from selenium importwebdriverfrom common.base importBaseimporttimeimportos

base_url= "url地址"

classImportRisk(Base):defimportRisk(self):'''风险模板导入'''node= ("css selector", ".bp3-tree-node-content.bp3-tree-node-content-0.sc-eNQAEJ.geXpPO")

self.move_to_element(node)#鼠标右键

self.move_context_click(node)#选择导入

menu = ("css selector",".bp3-menu>li:nth-child(1)")

self.click(menu)#点击上传按钮

upfile = ("css selector",".bp3-file-upload-input.bp3-file-upload-input-custom-text")

self.click(upfile)

time.sleep(2)#上传文件

file_path = "D:\EprosliteUI\common\风险模板.xls"os.system(r"D:\EprosliteUI\common\upfile.exe %s" %file_path )

time.sleep(5)#点击导入

submit = ("name","Submit")

self.click(submit)if __name__ == '__main__':

driver=webdriver.Chrome()

driver.get(base_url)

driver.maximize_window()

time.sleep(2)

risk=ImportRisk(driver)

risk.importRisk()

time.sleep(2)

driver.quit()

Logo

一站式 AI 云服务平台

更多推荐