51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2093|回复: 0
打印 上一主题 下一主题

selenium+python之windows弹框处理(AutoIt)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-19 14:42:22 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1.背景
    采用selenium+python进行了基础功能页面的冒烟操作,基本的操作方式未通过页面元素的识别点击、输入、数据获取判断等实现,在操作过程中通过web页面对象进行操作,但实际的使用过程中会出现非web窗口对象的其他windows窗口操作,以下就操作过程中遇到的处理方式进行总结。
2.selenium+python之windows弹框处理(AutoIt)
1)环境部署说明
    针对上述背景中提及的情况,可以通过autoit进行windows操作,安装autoit3软件,之后通过autoit软件进行界面操作,再将实现文件转换成exe文件,在python+selenium中通过命令行传参调用。
2)BAP的业务模块上载的windows窗口操作
    当进行业务模块上载操作选择文件操作时会打开文件选择框,该窗口为windows窗口,原先的python+selenium无法识别到该窗口,就要通过autoit进行窗口识别操作。

Autoit文件如下:
#上载文件打开操作
#输入参数 cmdline[1]为文件名和文件路径
WinWait("打开")
WinActivate("打开")
WinWaitActive("打开")
Send($cmdline[1])
ControlClick("打开","",1)

然后将该文件转换成openfile.exe后,再在python+selenium中进行调用如下操作:
import sys
pypath=sys.path[0]
loadfile=ec_modulefile_path_list[i]
loadfilevar=pypath+"\openfile.exe"+" "+loadfile

3)BAP业务模块生成、打包的windows弹框操作
BAP生成、打包操作时候,会弹出windows窗口,如下图所示:

这种窗口无法实现脚本继续操作,通过确认知道该windows窗口支持键盘操作,但python+selenium的键盘操作需要获取指定的页面驱动,该弹出的windows窗口无对应页面驱动,此时也想到通过autoit来实现,具体如下:
AutoIT文件实现如下:
#输入键盘操作
Send($cmdline[1])

然后将该文件转换成enterkey.exe后,再在python+selenium中进行调用如下操作:
pypath = sys.path[0]
keyvalue="{Enter}"
keyvar = pypath + "\enterkey.exe  " +keyvalue
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 07:56 , Processed in 0.065034 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表