selenium 网页自动化 - 在访问一个网页时弹出的浏览器窗口,我该如何处理?
特别鸣谢本文来自柠檬班-python 自动化第 25 期 铃铛同学 在做作业时遇到的问题,并提供的解决方案!特别感谢铃铛同学。如果你是柠檬班的学生,热烈欢迎你来投稿技术文章哦!前言相信大家在使用 selenium 做网页自动化时,会遇到如下...
特别鸣谢
本文来自柠檬班-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 from pykeyboard import PyKeyboard #实例化对象 k=PyKeyboard() #按下Enter键 k.press_key(k.return_key) # 其中return_key就是Enter键
若需要按下其他键,可选中 PyKeyboard 后,按 ctrl+b,查看 special_key_assignment 函数下的属性的说明。
本文最开头截图完整的处理代码如下:

若还有其它解决方案,欢迎留言交流!
| 有任何问题都欢迎加微信13327216815或者软件测试交流QQ群:972956275,备注:官网,还可获取免费测试学习视频干货资料哦! |