相信大家在使用selenium做网页自动化时,会遇到如下这样的一个场景:
在你使用get访问某一个网址时,会在页面中弹出如上图所示的弹出框。
首先想到是利用Alert类来处理它。
然而,很不幸,Alert类处理的结果就是没有结果,并不能够将这个弹出框关闭掉。
无法用处理alert的方式来关闭该弹出框,不关闭又无法对页面进行其他操作,怎么办呢?
解决方案
用键盘的Enter键来关闭该弹出框。
由于send_keys方法只能是针对元素来发送selenium的key值,而当前案例无法定位到该弹出框。
所以使用 PyKeyboad 来实现用python操作键盘
具体解决步骤
步骤1:想要使用PyKeyboard,需要先安装:pywin32->pyHook->PyUserInput
(1)安装pywin32
安装国外源的pywin32,会经常遇到因为超时导致安装失败,因此建议用国内源来安装。
可通过cmd来安装国内源的pywin32,指令如下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywin32
其中:https://pypi.tuna.tsinghua.edu.cn/simple是清华大学的镜像文件地址。
也可选择其他国内源,例如:
阿里云:https://mirrors.aliyun.com/pypi/simple/
豆瓣:https://pypi.douban.com/simple/
(2) 如何安装pyHook
从https://blog.csdn.net/dianmomanxue/article/details/95044676下载对应版本的pyHook后,通过cmd进入到该pyHook的文件夹路径后,输入:
pip install pyHook1.5.1cp37cp37mwin_amd64.whl
(3) 如何安装PyUserInput
通过cmd,输入:pip install PyUserInput
步骤2:py文件中导入PyKeyboard,并输入Enter键:
若需要按下其他键,可选中PyKeyboard后,按ctrl+b,查看 special_key_assignment函数下的属性的说明。
本文最开头截图完整的处理代码如下:
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
文档获取方式:
加入我的软件测试交流群:1007119548免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取