selenium不定位元素直接使用键盘操作(如弹框操作)
作者:小教学发布时间:2023-09-28分类:程序开发学习浏览:71
导读:今天在使用selenium进行定位时,发现直接定位不了chrome的弹框,如这种弹框:使用的是下面这行代码driver.switch_to.alert.accept()...
今天在使用selenium进行定位时,发现直接定位不了chrome的弹框,如这种弹框:
使用的是下面这行代码
driver.switch_to.alert.accept()
运行报错,说是没有 alert windown。。。。
啊?难道chrome的弹框不是用alert写的?emmm……还真是,现在很少使用alert这种原生弹框了,多多少少都会自己封装下,然后就……全网找解决方法……
既然定位不了的话,那我就直接键盘操作?然后在原界面试了下,还真可以用tab键、空格键进行切换,确认操作,太惊喜了,然后就开始试验:
第一个方法:(对我这种还是不起作用)
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time
# 模拟按键盘tab键
ActionChains(driver).send_keys(Keys.TAB).perform()
time.sleep(1)
# 模拟按键盘空格键
ActionChains(driver).send_keys(Keys.SPACE).perform()
但是如果不是弹框,直接在页面上模拟按键还是可以的,哎,继续找其他方法....
第二个方法:(亲测有效呀!!!)
又发现原界面不仅能使用tab键和空格键操作,左右键和回车键也是可以操作的,哈哈哈。。。
于是……找了以下方法
原来……我们不能通过selenium与这些弹出窗口交互,因为它们不是HTML的一部分。当弹出窗口打开时,你可以先按键盘上的左箭头,然后按回车键来接收它。在python中,可以使用pyautogui
来完成这一操作:
import pyautogui
pyautogui.press('left')
pyautogui.press('enter')
啊。。。。终于可以了,让我一顿好找呀!!!
这折腾的我,浪费了半天时间……不过也算是解决了,特此记录!!
- 程序开发学习排行
-
- 1鸿蒙HarmonyOS:Web组件网页白屏检测
- 2HTTPS协议是安全传输,为啥还要再加密?
- 3HarmonyOS鸿蒙应用开发——数据持久化Preferences
- 4记解决MaterialButton背景颜色与设置值不同
- 5鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
- 6鸿蒙HarmonyOS实战-ArkUI组件(Stack)
- 7鸿蒙HarmonyOS实战-ArkUI组件(GridRow/GridCol)
- 8[Android][NDK][Cmake]一文搞懂Android项目中的Cmake
- 9鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
- 最近发表
-
- WooCommerce最好的WordPress常用插件下载博客插件模块的相关产品
- 羊驼机器人最好的WordPress常用插件下载博客插件模块
- IP信息记录器最好的WordPress常用插件下载博客插件模块
- Linkly for WooCommerce最好的WordPress常用插件下载博客插件模块
- 元素聚合器Forms最好的WordPress常用插件下载博客插件模块
- Promaker Chat 最好的WordPress通用插件下载 博客插件模块
- 自动更新发布日期最好的WordPress常用插件下载博客插件模块
- WordPress官方最好的获取回复WordPress常用插件下载博客插件模块
- Img to rss最好的wordpress常用插件下载博客插件模块
- WPMozo为Elementor最好的WordPress常用插件下载博客插件模块添加精简版