• AutoIt的使用(Selenium 上传文件)


    AutoIt的使用

    《Python实现Web UI自动化测试实战:Selenium 3/4+unittest/pytest+gitlab+jenkins》读书笔记
    主要是用来上传文件

    安装

    官网:www.autoitscript.com
    下载路径: https://www.autoitscript.com/site/autoit/downloads/

    安装后的目录构成

    AutoIt v3 Window Info——获取窗口信息工具(Au3Info.exe)
    通过finder tool,可以获取任意对象的信息,比较重要的信息有title、visible text。另外,在mouse标签下面还可以看到position信息、坐标,在summary标签下面可以看到classnameNN信息。

    Compile Script to .exe——将脚本转换成“.exe”文件(Aut2Exe/Aut2exe.exe)
    借助Compile Script to .exe组件将脚本转换成“.exe”文件,然后借助Python的os模块执行“.exe”文件。脚本可以参考os.system(“a.exe”)。

    方法

    • 等待窗口就绪 : WinWaitActive("title"[,"text"[,timeout]])

    • 返回窗体的位置信息: WinGetPos("title"[,"text"])

    • 模拟鼠标单击: MouseClick("button" [,x,y[,clicks = 1 [,speed = 10]]])

    • 睡眠: Sleep(milliseconds)(单位毫秒)

    • 将输入焦点设置为窗口中的指定控件: ControlFocus("title", "text", controlID)

    • 发送鼠标单击命令到给定控件: ControlClick("title", "text", controlID)
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Gdy3nWT-1656483979915)(https://raw.githubusercontent.com/wuhanwoaini521/cloudimg/main/20220615141336.png)]

    • 设置控件的文本: ControlSetText("title", "text", controlID, "newText")

    使用SciTE Script Editor编辑脚本内容

    # 等待Class为#32770的窗体
    WinWaitActive("[CLASS:#32770]","",10)
    # 把焦点设置在controlID为Edit1的控件中
    ControlFocus("打开","","Edit1")
    # 设置该控件的文本为C:\Users\qvzn0\Pictures\test.jpeg
    ControlSetText("打开","","Edit1","C:\Users\qvzn0\Pictures\test.jpeg")
    # 单击controlID为Button1的控件
    ControlClick("打开","","Button1")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    使用 Compile Script to.exe转换文件

    selenium 脚本执行

    from selenium import webdriver
    from time import sleep
    from selenium.webdriver.common.action_chains import ActionChains
    import os
    
    driver = webdriver.Chrome()
    driver.get("http://sahitest.com/demo/php/fileUpload.htm")
    sleep(2)
    ele = driver.find_element_by_id('file')
    ActionChains(driver).click(ele).perform()
    sleep(2)
    os.system('D:\\A\\upload.exe')
    sleep(3)
    driver.quit()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    【3568开发板教程上新】Android11移植开发教程升级来袭!
    [附源码]计算机毕业设计springboot基于Java的员工管理系统
    Qt中两个类通过信号槽进行传输数据遇到的问题
    Python - 字符串编解码
    聊聊Vuex原理
    第五站:操作符(第二幕)
    《区块链公链数据分析简易速速上手小册》第4章:交易数据分析(2024 最新版)
    Spring中的事务管理
    Ubuntu安装搜狗输入法
    同源策略——CORS和JSONP劫持漏洞
  • 原文地址:https://blog.csdn.net/qq_37931379/article/details/125521352