selenium不定位元素直接使用键盘操作(如弹框操作)

今天在使用selenium进行定位时,发现直接定位不了chrome的弹框,如这种弹框:

使用的是下面这行代码

复制代码
driver.switch_to.alert.accept()

运行报错,说是没有 alert windown。。。。

啊?难道chrome的弹框不是用alert写的?emmm......还真是,现在很少使用alert这种原生弹框了,多多少少都会自己封装下,然后就......全网找解决方法......

既然定位不了的话,那我就直接键盘操作?然后在原界面试了下,还真可以用tab键、空格键进行切换,确认操作,太惊喜了,然后就开始试验:

第一个方法:(对我这种还是不起作用)

python 复制代码
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来完成这一操作:

python 复制代码
import pyautogui

pyautogui.press('left')
pyautogui.press('enter')

啊。。。。终于可以了,让我一顿好找呀!!!

这折腾的我,浪费了半天时间......不过也算是解决了,特此记录!!

相关推荐
Lethehong5 小时前
Python Selenium全栈指南:从自动化入门到企业级实战
python·selenium·测试工具·自动化
山里幽默的程序员5 小时前
Postman如何导出全部接口集合?备份与共享详细步骤
测试工具·postman
吉哥机顶盒刷机14 小时前
IPTV抓包工具合集:Wireshark、parse_cap_channels_v2、IPTV全能工具箱
网络·测试工具·wireshark
oi..15 小时前
Flag入门—修改数据包拿到答案
笔记·测试工具·安全·网络安全
小罗和阿泽15 小时前
GUI 自动化测试 pywinauto测试框架
开发语言·python·功能测试·测试工具·pytest
Wpa.wk15 小时前
APP测试 - adb基础命令2
经验分享·测试工具·adb
大白菜1号16 小时前
踩坑了!Postman 正常,但本地项目 406 (Not Acceptable)
vue.js·测试工具·postman
程序员小远17 小时前
Python+requests+unittest+excel 实现接口自动化测试框架
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·excel
好家伙VCC17 小时前
# 发散创新:用Selenium实现自动化测试的智能断言与异常处理策略在现代Web应用开发中,*
java·前端·python·selenium
文人sec17 小时前
抛弃 Postman!用 Pytest+Requests+Allure+Playwright+Minium 搭建高逼格接口+UI自动化测试平台
自动化测试·python·测试工具·ui·pytest·playwright