selenium之 autoit命令行参数

更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解


selenium对网页进行UI自动化时经常会遇到OS弹框,比如上传、下载框,对这种弹框,selenium无法处理,常常我们会选择autoit这个工具。

想要参数化传入的参数,可以通过autoit的命令行参数:

myProg.exe param1 “This is a string parameter” 99

在脚本中,可用以下变量获取命令行参数:

$CmdLine[0] ; = 3
$CmdLine[1] ; = param1
$CmdLine[2] ; = "This is a string parameter"
$CmdLine[3] ; = 99
$CmdLineRaw ; = 'param1 "This is a string parameter" 99'

$CmdLine[0] 获取的是命令行参数的总数,在上例中$CmdLine[0]=3
$CmdLine[1]~$CmdLine[63] 获取的是命令行参数第1到第63位,这个方式最多只能获取63个参数,不过正常情况下是足够用的
$CmdLineRaw 获取的是未拆分的所有参数,是一个长字符串,这种情况下不局限与63个参数

下面我们小小实践一下:

示例网址:http://www.sahitest.com/demo/php/fileUpload.htm

通过autoit的获取对象并编辑脚本:

ControlFocus("文件上传", "", "Edit1")
WinWait("[CLASS:#32770]", "", 10)
ControlSetText("文件上传" ,"", "Edit1", $CmdLine[1])
Sleep(2000)
ControlClick("文件上传", "","Button1");

通过Aut2Exe工具将脚本转成exe文件(upfile.exe)

我们先通过命令行试试,打开网页上传弹框,然后在cmd中执行该脚本:

D:\upfile.exe "D:\1.html"

成功!

接下来就是用Python用os模块来调用该文件了:

# -*- coding: utf-8 -*-
from selenium import webdriver
import os
import time

driver = webdriver.Firefox()
driver.get('http://www.sahitest.com/demo/php/fileUpload.htm')
driver.find_element_by_id('file').click()
time.sleep(1)

os.system('D:\\upfile.exe "D:\\1.html"')  # 这里可以对传参进行参数化,我们可以通过py脚本来控制所要上传的文件了

time.sleep(3)
driver.quit()

执行,成功!

当然,这里只是个示例,实际上对于这种input标签,我们直接send_keys就可以了。今后再专门讨论上传的处理。

<think>好的,用户想要将Windows 7升级到Windows 10的脚本或自动化工具推荐。我需要先回顾一下系统级指令,确保回答符合要求。所有行内数学表达式要用$...$,独立公式用$$...$$,中文回答,生成相关问题,引用部分加标识。 首先,用户的问题是关于升级Win7到Win10的自动化工具。根据之前的引用,用户提到了WinAppDriver和Airtest-Selenium。但WinAppDriver主要用于UWP、WinForms等应用的自动化测试,而Airtest-Selenium是针对浏览器的。不过这些可能不完全适用于系统升级的自动化。 我需要考虑有哪些工具或脚本能帮助自动化系统升级。Windows 10升级助手(Media Creation Tool)本身是微软官方的,虽然它没有直接的脚本接口,但可以通过命令行参数来执行静默安装。此外,可能还有一些第三方工具或使用PowerShell脚本来自动化下载和安装过程。 另外,用户可能需要兼容Win7环境的工具,因为Win7本身比较老旧,部分新工具可能不支持。可能需要推荐微软官方工具,比如Media Creation Tool的命令行用法,或者使用DISM工具部署系统镜像。还有,第三方自动化工具如AutoIt或者SikuliX可能可以模拟用户操作,但稳定性需要考量。 需要注意的是,系统升级涉及高风险操作,必须强调数据备份和官方工具的重要性,避免推荐不可靠的第三方工具。同时,引用之前提到的WinAppDriver和Airtest可能不太适用,但可以提到如果用户需要后续的自动化测试,这些工具可以用于升级后的应用测试。 生成相关问题时,需要考虑用户可能关心的其他方面,比如如何验证升级后的系统、如何回滚、是否有批量升级的方法等。 现在整理回答结构:首先推荐官方工具,说明其命令行用法;然后介绍可能的第三方自动化架,但提醒风险;最后强调备份的重要性。引用之前的引用时,需要正确关联,比如WinAppDriver可能用于后续测试,而不是升级过程本身。</think>### Windows 7升级到Windows 10的脚本工具推荐 #### 1. **官方工具推荐** - **Microsoft Media Creation Tool** 微软官方提供的免费升级工具,支持通过命令行参数实现自动化升级。 **脚本化示例**: ```powershell # 下载Windows 10镜像并静默启动安装 MediaCreationTool.exe /auto upgrade /quiet ``` 需从[微软官网](https://www.microsoft.com/software-download/windows10)下载工具。此方法无需复杂脚本,但需手动确认部分步骤[^1]。 - **Windows Update 服务** 若系统支持直接升级,可通过PowerShell调用Windows Update服务: ```powershell Install-Module PSWindowsUpdate -Force Import-Module PSWindowsUpdate Install-WindowsUpdate -AcceptAll -AutoReboot ``` #### 2. **第三方自动化架** - **WinAppDriver + Appium** 若需完全自动化的界面操作(如模拟点击升级向导),可通过WinAppDriver控制升级程序。需配合Python脚本: ```python from appium import webdriver capabilities = {"app": "MediaCreationTool.exe", "platformName": "Windows"} driver = webdriver.Remote(command_executor='http://127.0.0.1:4723', desired_capabilities=capabilities) # 模拟点击操作(需定位按钮坐标或控件ID) ``` 此方法依赖界面元素识别,稳定性较低。 - **AutoIt** 老牌Windows自动化工具,可录制升级流程并生成脚本: ```autoit Run("MediaCreationTool.exe") WinWaitActive("Windows 10 安装程序") ControlClick("下一步", "", "Button1") ``` 需提前测试脚本兼容性。 #### 3. **注意事项** - **数据备份**:升级前需通过脚本备份关键数据(如使用`robocopy`命令)。 - **兼容性验证**:通过PowerShell命令`Get-WindowsEdition -Online`检查当前系统版本是否支持升级[^2]。 - **回滚方案**:建议生成系统还原点: ```powershell Checkpoint-Computer -Description "Pre-Win10-Upgrade" ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值