python+selenium 捕捉不到弹出的div类型的提示解决方法

【Python】selenium 点击某个按钮 click() 出现的报错问题--ElementClickInterceptedException(全!) ElementClickInterceptedException 是 Selenium WebDriver 中的一种异常,通常发生在尝试点击一个元素时,如果该元素被另一个元素遮挡,或者页面上有覆盖的元素(如弹出窗口、模态框、下拉菜单等),就会抛出这个异常。 阅读详情

我在用python+selenium,进行某一网址,登录口的测试时,对错误处理进行处理

用户名错误用户名
密码正确密码格式

然后,如果是上面这种情况,系统会从右上角弹出一个类似于文本框的提示:

不存在该用户名或用户被禁用!

但是这个框,我尝试捕获<p>,<div>,它是div类型的,但是无法捕获,如下:

b.find_element_by_xpath('/html/body/div[2]/div/div[1]/p')

后来发现只有三种可能!:

1.捕获元素时语法写错了

下面的代码中,我以为是对的,后来总是报错,你能看出来是什么吗,答案我会放在最后一行:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait


def get_ele_time(driver,time,func):
    WebDriverWait(driver,time).until(func)

def test(): 
    driver = webdriver.Firefox()
    driver.get('http://192.168.0.100') #这是我进去的网址,你们不用试了。。
    try:
       err = get_ele_time(driver,3, 
lambda driver: driver.find_element_by_xpath('/html/body/div[2]/div/div[1]/p'))
#上面这句话就是想要获得弹框的元素
       print(err.text)  #然后把弹框里的文字打印出来

    except BaseException as e:
        print(repr(e)) #如果try里面有错误,则执行这句话,把错误信息打印出来

if __name__ == '__main__':
    
    test()

2.元素是隐藏的

display:none,这种情况,移步虫师的selenium操作隐藏的元素,https://www.cnblogs.com/fnng/p/5365900.html

3.当你捕获元素的语句在执行的时候,那个元素还没出来,或者已经消失。

可以使用time.sleep(秒数),提前引用time。  在文件开头 import time.这样的话,可以设置等待多少秒,再去找你想要的元素

答案:我犯了第一个错误!语法错误!我忘了在下面的函数里,加上return了。应该是

def get_ele_time(driver,time,func):
    return WebDriverWait(driver,time).until(func)


如果加上return,那么下面这句话

① err = get_ele_time(driver,3,lambda driver: driver.find_element_by_xpath('/html/body/div[2]/div/div[1]/p'))

② print(err.text)

对于①,get_ele_time()函数返回,lambda函数返回的元素。然后这个返回值,赋值给err。所以这样err就是我们要找的元素了。

然后②被执行,就可以打印出“不存在该用户名或用户名被禁用!”

刚刚,因为我忘了加上return,所以get_ele_time()没有返回值,那么err就被赋值了none。所以①还是被执行了,但是②就报错了,因为none类型没有text方法。

Python自动化抢票实战:基于Selenium与Appium的双端解决方案 在当今数字化时代,自动化测试与脚本技术已成为提升效率、解决重复性任务的关键手段。其核心原理是通过程序模拟用户操作,实现对Web页面或移动应用界面的精准控制,从而将人工从繁琐、高并发的交互中解放出来。这项技术的价值在于,它能够以远超人类的反应速度和稳定性,在特定场景下完成高精度、高并发的操作任务,尤其适用于电商、票务等需要快速响应的在线服务领域。以热门演出票务抢购这一典型应用场景为例,面对海量用户同时在线、票源秒罄的挑战,手动操作的成功率极低。通过结合Selenium(Web端自动化)和Appium(移动端自 阅读详情

相关推荐

基于Selenium与Schedule的Python自动化签到系统实现

浏览器自动化是Web自动化测试与数据采集领域的核心技术,其原理是通过程序控制浏览器模拟真实用户操作,如点击、输入和导航。这项技术的核心价值在于解放人力,将重复性、规律性的Web操作任务自动化执行,从而提升效率与准确性。在工程实践中,Selenium作为成熟的浏览器自动化框架,因其跨浏览器支持和对JavaScript的完美执行能力,成为模拟复杂Web交互的首选工具之一。结合轻量级定时任务调度库Schedule,可以构建稳定可靠的后台自动化服务。典型的应用场景包括每日网站签到、数据定时抓取、价格监控以及自动化测

weixin_30644369的博客 338

selenium定位弹框元素

https://blog.youkuaiyun.com/ningmengbu_suan/article/details/107342844

renxingzhadan的专栏 8997

DIV弹出层+定位

这个例子是,div弹出层并且固定位置,弹出层的弹出方式为滑动方式。

selenium中,div弹出提示框,如何定位?

弹出框是用div模拟出来的,用switch_to_window和switch_to_frame是切换不过去的,那么如何去定位到弹框呢? 可以这样处理: 一般弹出窗口那个mainFrame是同一层窗口,同时mianframe在顶层窗口下面,所以这里我通browser.switch_to_default_content()语句返回到顶层窗口,然后在用browser.find_element_by_xpath语句定位我想要查找的页面元素。 最新版本的selenium中会建议你用self.driver.swi

weixin_36273267的博客 1万+

逆向分析美团外卖mtgsig3.0签名算法:从抓包到算法还原实战

在移动应用开发与安全领域,API接口签名是保障数据传输完整性与身份验证的核心机制。其基本原理是通过特定的算法,将请求参数、时间戳等数据与密钥结合,生成唯一的签名串,服务器通过验证签名来识别请求的合法性。这项技术的核心价值在于防止数据篡改、重放攻击和未授权访问,是构建安全客户端-服务器通信的基石。在实际应用中,签名算法广泛应用于电商、社交、金融等各类App的接口保护场景。本文以美团外卖App的mtgsig3.0签名为具体案例,详细拆解了其生成逻辑。通过结合Frida动态调试与Jadx静态分析,文章深入探讨了如

weixin_29325515的博客 1246

用ADS复现一篇MTT顶刊的GAN功率放大器:从理论推导到版图仿真的完整避坑指南

本文详细解析了如何利用ADS软件复现MTT顶刊中的E/F3类GaN功率放大器设计,从理论推导到版图仿真的全流程。通过核心设计理念解析、ADS环境配置、输出匹配网络优化等关键步骤,提供了一套完整的工程实践指南,帮助工程师跨越学术理论与实际应用的鸿沟,实现高效率射频功率放大器的设计。

weixin_30654583的博客 315

【Selenium】弹出框处理

文章目录1 Alert(警告信息) 1 Alert(警告信息) Alert弹出框,目的就是显示通知信息,只需用户看完信息后,点击OK(确定)就可以了。 selenium提供如下方法进行操作: # 点击OK(确定)按钮 wd.switch_to.alert.accept() # 获取弹出框的信息内容 wd.switch_to.alert.text 注意:如果我们不去点击它,页面的其它元素是不能操作的。 @ ...

殷小速的博客 9039

银河飞腾FT6678实战指南:OpenMP多核并行编程优化技巧

本文详细介绍了在银河飞腾FT6678多核处理器上使用OpenMP进行并行编程的实战技巧与优化方法。从基础语法到环境配置,再到性能优化的五大核心技巧,包括循环并行化、并行粒度控制、reduction子句使用等,帮助开发者充分发挥FT6678的8核计算能力。通过实际案例展示如何将图像处理算法从200ms优化到28ms,并深入探讨了任务调度、内存访问优化等进阶主题。

weixin_29234423的博客 287

51job+selenium+div弹窗

from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time

qq_35249586的博客 1904

104报文解析工具

可选择包含报文的文本文件或日志文件进行解析,可选择按条数范围或时间范围,输出结果可以在报文解析显示区,也可以输出到文件。可以对文本内容的报文文件进行高级分析,包括遥信遥测等通讯数据的具体信息,通讯帧的统计,通讯次数的统计,各种错误的分析,报文的定位功能,传输的文件具体内容等。输入完成后点击工具栏的解析报文按钮或使用右键菜单的解析就可以对报文进行解析。在报文输入区输入待解析报文并解析后,解析结果就显示在报文解析显示区和报文定位展示区及报文定位条目区。当有多条报文解析后,可以通过报文列表树具体定位某条报文。

XZHOUMIN的博客 5949

EMC案例:解决千兆网口RTL8211F EMI问题

摘要:本文分析了Amlogic S812平台OEM项目中RTL8211F-CG千兆网卡EMI辐射超标问题。发现百兆测试时25MHz时钟有3dB余量,但千兆125MHz时钟导致超标。问题根源包括:未关闭PHY芯片悬空CLKOUT引脚、TX/RXCLK端RC位置错误、包地不完整及参考地缺失。解决方案涉及软件关闭无用时钟、优化RC布局、加强包地与打孔、调整共模电感位置,并在HDMI 3.3V加磁珠。关键结论指出千兆网125MHz时钟需严格包地打孔,且RC取值需平衡EMI与通信性能。

电子绿洲的博客 1279

python win10 捕获 弹出窗口_[python爬虫] Selenium高级篇之窗口移动、弹出对话框自登录...

在我们使用Selenium Python制作自动爬虫和网页自动测试的时候,通常会遇到弹出新的窗体或对话框的时候,此时你捕获的窗体已经被打断,从而干扰你的爬虫。那怎么解决这个问题呢?本篇文章主要记录两段代码解决这类问题:第一个是click()函数点击超链接后,需要捕获弹出新窗体的信息,此时需要调用switch_to_window()函数切换窗体,再捕获新的数据;第二个是click()函数点击超链接后...

weixin_39960147的博客 1525

MTK平台LCD驱动开发实战:从零开始点亮你的Android屏幕

本文详细介绍了在MTK平台进行Android LCD驱动开发的完整流程。从理解LK与Kernel双核驱动框架入手,手把手讲解驱动结构体、屏幕参数配置、初始化序列编写以及PLL_CLOCK计算等核心步骤,并提供了系统集成配置与实用的调试避坑指南,帮助开发者高效点亮新屏幕。

terraform7cloud的博客 292

Selenium3+python3自动化(四十五)--弹出框死活定位不到

前言 之前学习了alert、confirm、prompt,看到弹出框,要先确定是不是alert(alert弹出框使用F12定位不到),不然的话(switch_to.alert)肯定不能用。 有些弹出框是div层,这种跟平常定位方法一样 有些弹出框是嵌套的iframe层,这种切换ifram就可以了 有些弹出框比较坑,是嵌入的一个窗口 如百度的搜索设置,弹出框就是div层,可以直接使用F12定位...

weixin_44732155的博客 285

APP抓包-代理转发绕过反代理+Xposed绕过证书校验

而这里的牛牛不止设置了反代理还设置了证书校验,一闪而过的三个数据包就是在校验证书。而proxifier工具的转发机制获取的是网络接口出口数据,相当于是在网络接口设代理。这个时候就可以在夜神打开牛牛开始抓包了,打开牛牛可以看到proxifier有夜神流量通过。关闭代理之后牛牛就正常了,可恶的牛牛啊,这样我没办法抓包啊,怎么办啊。模拟器开启代理,burp开启监听。打开牛牛app,牛牛不在报错。牛牛app检测的是系统代理,也就是在模拟器或手机上设置的代理。再在浏览器下载两个模块,在夜神安装,用来屏蔽证书校验。

xiaoheizi的博客 7532

芯片测试:WAT、CP、FT

最近部门来了一个日本回来的同事,虽然他尽量用非常Poor的中文给我解释一些东西,其中还夹杂着一些英文让我很受挫,于是最近来学一下WAT中的常用的单词含义。直接去查缩写、查单词很难去记住,要把具体的东西放在具体的场景,引发知识的连接才会在脑子里留下一定的映像。感兴趣的一起来学习一下这篇不错的文章吧。注释是我查询记录,如有不妥,欢迎指出修正。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 5086

解决Selenium弹出新页面无法定位元素问题(Unable to locate element)

Python 2.7 IDE Pycharm 5.0.3环境细节详见Python+Selenium+PIL+Tesseract真正自动识别验证码进行一键登录对于同一页面无法定位元素问题请见姊妹篇解决网页元素无法定位(NoSuchElementException: Unable to locate element)的几种方法 只解决一个问题--NoSuchElementException: Me

MrLevo520的博客 10万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

解决--python+selenium获取页面一闪几秒就消失的元素内容

在获取页面一些弹框提示的内容时候,首先要定位到相对应的元素,元素的定位方式有很多种,alert弹框的获取方式也很多 这里遇到一种前端弹框提示信息是用js生成,页面弹框提示信息一闪几秒就没了 背景: 获取弹框提示信息内容,进行判断操作是否成功 操作: 点击开关–获取弹框提示信息–判断操作是否成功 点击开关按钮前: 点击开关弹出提示信息后 几秒过后:又回到 类似这种一闪就没了 这个不是ale...

qq_21422005的博客 6563

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

selenium+python自动化103-一闪而过的dialog如何定位

前言 web页面操作的时候经常会遇到一闪而过的 dialog 消息,这些提示语一般只出现了几秒,过后元素节点就会在DOM中消失了。 本篇讲解下用chrome 浏览器如何定位一闪而过的 dialog 消息 dialog 场景 当点保存按钮后,页面弹出保存成功的提示框,这个提示框过1-2秒会自动消失 首先我们需要定位到此元素上,查看元素的属性相关信息,按f12 后鼠标还没来得及指上去就消失了,或者...

qq_27371025的博客 167

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python+selenium自动化之一闪而过的dialog如何定位

UI自动化测试过程中,我们经常遇见网页上点击“确定”一类的按钮时,会弹出一个提示框,提示成功之类的消息,这种提示框可能只会存在1s~2s,过后元素节点就会在DOM中消失了。我们如果想定位上面的提示信息,就很难用正常方法抓取到。本篇文章讲解下如何定位一闪而过的 dialog 消息~

qq11111117的博客 1282

自动化测试------selenium

selenium测试基础都在这里啦!!!

wxx200008的博客 1711

Python + Selenium + OpenCV 自动化识别与破解缺口滑动验证码实战

利用selenium+opencv识别含缺口的滑块验证码,识别率高达99%

大马猴5的博客 821

selenium实现淘宝的商品爬取

一、问题 本次利用selenium自动化测试,完成对淘宝的爬取,这样可以避免一些反爬的措施,也是一种爬虫常用的手段。本次实战的难点: 1.如何利用selenium绕过淘宝的登录界面 2.获取淘宝的页面内容实现翻页,并判断是否翻页成功。 3.获取每一页的信息,实现数据的抓取工作。 4.环境python3.6,对应的Chrome的webdriver驱动网址:http://chro...

weixin_30533797的博客 303

Selenium自动化实战:构建网页反应测试工具的技术解析

浏览器自动化是Web开发与测试领域的基础技术,其核心原理是通过程序控制浏览器模拟用户操作。Selenium作为行业标准工具,通过WebDriver协议与浏览器通信,实现对页面元素的精准定位与交互。这项技术的价值在于将重复性、高频率的人工操作转化为稳定高效的自动化流程,广泛应用于自动化测试、数据采集和任务自动化等场景。本文聚焦于利用Selenium实现网页反应测试的自动化,通过元素定位、显式等待等关键技术,解决动态页面交互的实时响应问题,为自动化脚本开发提供实践参考。

weixin_33834910的博客 339
上一篇: python+selenium自动化测试(资源下载网址和方法步骤)
下一篇: Html代码中,<img src="">如何写图片路径
Dear_Merlin
博客等级 码龄9年 35粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值