更多关于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 timedriver = 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就可以了。今后再专门讨论上传的处理。

selenium之 autoit命令行参数相关推荐

  1. python编写命令行框架_python的pytest框架之命令行参数详解(上)

    前言 pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作.pytest提供了丰富的功能,包括assert重写,第三方插件,以及其他测试工具无法比拟的fixtur ...

  2. 第三:Pytest框架之命令行参数(一)

    一.编写第一个测试函数(用例) 1 from selenium import webdriver2 3 def testOpenUrl():4 try:5 driver = webdriver.Fir ...

  3. Chrome和Firefox的命令行参数

    使用Selenium由于是基于浏览器的操作,所以了解浏览器的命令行参数( Command line switches)非常重要,例如:在使用Selenium的时候,设置Chrome的调试端口.用户数据 ...

  4. Go 学习笔记(45)— Go 标准库之 flag(命令行参数解析)

    1. 参数解析说明 import "flag" flag 包实现了命令行参数的解析.每个参数认为一条记录,根据实际进行定义,到一个 set 集合.每条都有各自的状态参数. 使用 f ...

  5. INNO SETUP 获得命令行参数

    INNO SETUP 获得命令行参数 原文 http://www.cnblogs.com/ahuo/archive/2009/07/30/1534998.html [Code] function Ge ...

  6. Windows安装用于OCR的Tesseract及使用命令行参数进行OCR

    Windows安装用于OCR的Tesseract及使用命令行参数进行OCR 1. 效果图 2. Tesseract 安装及验证 参考 这篇博客将介绍如何安装和使用光学字符识别(OCR Optical ...

  7. Python必备基本技能——命令行参数args详解

    Python必备基本技能--命令行参数args详解 1. 效果图 2. 源码 2.1 简单命令行参数 2.1 轮廓检测源代码 参考 这篇博客将介绍一项开发人员.工程师和计算机科学家必备的技能--命令行 ...

  8. 【C++】clipp 一个命令行参数解析器

    1.简介 clipp是一个使用方便.功能强大的命令行解析器,源码只有一个头文件<clipp.h> github地址:https://github.com/muellan/clipp 2.使 ...

  9. 【Qt】通过QtCreator源码学习Qt(六):命令行参数解析实现

    参考下大神的命令行参数解析是如何是实现的 //使用const char []代替宏定义字符串,我以前都是用const QString,想想好傻 const char SETTINGS_OPTION[] ...

最新文章

  1. Binary XML file line #39: 最多只支持3个子View,Most only support three sub vi
  2. c++ gdb 绑定源码_【Vue原理】VNode 源码版
  3. python使用matplotlib可视化subplots子图、subplots绘制子图、子图之间有重叠问题、使用subplots_adjust函数合理设置子图之间的水平和垂直距离
  4. 怎么进入python官网-Python的安装及简单的使用
  5. 【小白学PyTorch】15.TF2实现一个简单的服装分类任务
  6. java string args_java – 语法“final String … args”是什么意思/做什么?
  7. as_hash ruby_Ruby中带有示例的Hash.delete_if方法
  8. Asp.NetWebForm的控件属性
  9. BootStrap Table和Mybatis Plus实现服务端分页
  10. python定时重启程序
  11. 酒店计算机管理系统维护合同,酒店计算机管理系统维护合同协议书范本.pdf
  12. java 切图 软件_Java 切图
  13. (WSI分类)WSI分类文献小综述
  14. 共识,权威以及去中心化的区块链
  15. Apache 支持ipv6 安装及常见问题
  16. 源码编译安装git过程记录
  17. 数据库原理与应用 构建音乐商店,实现复杂查询和批量操作及视图练习
  18. python连接SQL Server:Pymssql模块
  19. ueditor编辑器 字数统计 不算空格 以及 过滤粘贴板格式
  20. 南大通用GBase8s 常用SQL语句(124)

热门文章

  1. Sofia2.0项目功能问题集
  2. 基于Unity的多人协作游戏开发
  3. inout的具体使用方法
  4. Windows常用DOS(cmd)目录命令
  5. 一键申报税务,就找小帮软件机器人...一键申报
  6. 逻辑卷、物理卷、卷组 的关系
  7. 图片翻译软件哪个好?这些图片英文翻译器建议收藏
  8. EasyExcel实现excel区域三级联动
  9. 外星人台式机无盘服务器,【图片】外星人台式机更换第三方主板安装Alienware Command Center教程【alienware吧】_百度贴吧...
  10. 2022-7-6 Leetcode 977.有序数组的平方