selenium 网页自动化-在访问一个网页时弹出的浏览器窗口,我该如何处理?

发布于 更新于

技术文章

特别鸣谢本文来自柠檬班-python自动化第25期 铃铛同学 在做作业时遇到的问题,并提供的解决方案如果你是柠檬班的学生,热烈欢迎你来投稿技术文章哦!前言相信大家在使用selenium做网页自动化时,会遇到如下这样的一个场景:在你使用get...

特别鸣谢

本文来自柠檬班-python自动化第25期 铃铛同学 在做作业时遇到的问题,并提供的解决方案

如果你是柠檬班的学生,热烈欢迎你来投稿技术文章哦!



前言


相信大家在使用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函数下的属性的说明。


本文最开头截图完整的处理代码如下:




说明:本文为柠檬班小简老师原创,转载需注明出处


继续阅读