A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

相信大家在使用selenium做网页自动化时,会遇到如下这样的一个场景:




在你使用get访问某一个网址时,会在页面中弹出如上图所示的弹出框。
首先想到是利用Alert类来处理它。
然而,很不幸,Alert类处理的结果就是没有结果,并不能够将这个弹出框关闭掉。
无法用处理alert的方式来关闭该弹出框,不关闭又无法对页面进行其他操作,怎么办呢?

解决方案
用键盘的Enter键来关闭该弹出框。
由于send_keys方法只能是针对元素来发送selenium的key值,而当前案例无法定位到该弹出框。
所以使用 PyKeyboad 来实现用python操作键盘

具体解决步骤pyHook->PyUserInput" style="margin-top: 10px; margin-bottom: 10px; color: rgb(51, 51, 51); font-family: Verdana, Arial, Helvetica, sans-serif; background-color: rgb(238, 238, 238);">步骤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
      下载对应版本的pyHook后,通过cmd进入到该pyHook的文件夹路径后,输入:
       pip install pyHook1.5.1cp37cp37mwin_amd64.whl
(3) 如何安装PyUserInput
       通过cmd,输入:
       pip install PyUserInput

步骤2、py文件中导入PyKeyboard,并输入Enter键:[url=][/url]
1 #导入PyKeyboard2     from pykeyboard import PyKeyboard3 4     #实例化对象5     k=PyKeyboard()6 7     #按下Enter键8     k.press_key(k.return_key) # 其中return_key就是Enter键[url=][/url]

若需要按下其他键,可选中PyKeyboard后,按ctrl+b,查看 special_key_assignment函数下的属性的说明。

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


1 个回复

倒序浏览
您需要登录后才可以回帖 登录 | 加入黑马