本意是想写一个自动领取dnf每日签到奖励的小脚本,实际上是功能是已经实现了,可以领取奖励了。

但是我后续想要提取领完奖励后弹窗的文本,直接浏览器里复制xpath,提取不出来。

//*[@id="showAlertContent"]

我就以为是遇到了类似iframe的情况,需要先特殊处理,搜索了一下,发现了关于alert的处理

driver.switch_to.alert()

然而报错了,于是又去找no such alert的相关问题,alert还未加载出来导致报错,增加延迟就能解决。然而我尝试了一下,还是报错。

我又去找了下别的带有alert的网页,写了个简单的网页以及程序去跑,发现是能成功的

<html>
<head>
<script type="text/javascript">
function display_alert(){alert("I am an alert box!!")}
</script>
</head>
<body><input type="button" onclick="display_alert()"
value="Display alert box" /></body>
</html>
from selenium import webdriver
driver = webdriver.Edge()
driver.get('file:///C:/Users/A/Desktop/10.html')
driver.find_element_by_xpath('/html/body/input').click()
print(driver.switch_to.alert.text)

我仔细对比了一下dnf网页以及作为例子的网页,发现这两者的弹窗是有差别的,dnf的弹窗存在时,我还可以对网页进行下拉等操作,但是简单例子的弹窗存在时,我只能先关闭弹窗再对网页进行操作。

排除了alert的问题,绕了一圈,我又绕回来了。因为弹窗的提示信息是在执行了js之后才出现的,而弹窗提示下的‘确认’二字是一直存在的,于是我尝试修改xpath去提取,一开始想着节省时间,注释掉了中间登陆的代码, 直接去提取确认,发现没提取出来。然后取消注释之后又能提取出来了。

driver = webdriver.Edge()
driver.get('https://dnf.qq.com/lbact/a20210617comic/index.html')
# #登陆账号
# login_2=driver.find_element_by_xpath('//*[@id="dologin"]')
# driver.execute_script("arguments[0].click();",login_2)
# driver.switch_to.frame('loginIframe')
# qq=driver.find_element_by_xpath('//*[@id="img_out_xxxxxx"]')  #xxxxx为qq号
# webdriver.ActionChains(driver).move_to_element(qq).click(qq).perform()
# # driver.switch_to_default_content()#释放frame
# driver.switch_to.parent_frame()#返回父集  也能释放iframe
# a=driver.find_element_by_xpath('//*[@id="Hold_774826"]')
# time.sleep(2)
# driver.execute_script("arguments[0].click();",a)
# time.sleep(1)
a=driver.find_element_by_xpath('//*[@id="showAlert"]/div/a')
print(a.text)

我继续修改xpath,改成了 //*[@id="showAlert"]/div/p,然后就能成功提取出弹窗的文本了。

总结:

1.弹窗与弹窗不能一概而论,得具体问题具体分析。

2.未登录状态下,未能提取到‘确认’,隐藏元素无法直接获取

3.所以为什么//*[@id="showAlertContent"]不能提取到弹窗的文本呢?我还是没想明白

第一次发帖,虽然没什么技术含量,但也算记录我学习的一个过程了

python Selenium初学记录 弹窗处理 no such alert相关推荐

  1. python+selenium—无弹窗驱动浏览器(无头浏览器)

    Python+selenium-实现无弹窗驱动浏览器(无头浏览器) import time from selenium import webdriverclass Driver:# 获取驱动def g ...

  2. Python+selenium 自动化-读取excel记录的脚本执行登陆操作实战演示

    我们可以用 excel 来记录自动化,然后读取 excel 来执行命令,excel 可以很方便直观的管理我们录入的自动化.下面给大家演示一下 Python+selenium 自动化的实例,读取 exc ...

  3. python另存为_python+selenium修改“另存为”弹窗参数

    好多天没有按部就班地学习,这几天进行了高强度地探究实践: 上周天下午接了一个单子,客户目前重复做着一项工作,没有技术含量但特别消耗心理能量: 每天从固定网站上下载200多份文件,操作只是"查 ...

  4. 记录Python selenium制作自动化农民世界脚本第一天

    @记录Python selenium制作自动化农民世界脚本第一天 第一步,实现自动化登录农民世界 直接上代码 class Wish(object):# def __init__(self):def g ...

  5. python selenium 处理弹窗_python中能否使用selenium获取弹窗的文本内容?

    问题如下:网页输入验证码正确并且查询到结果则跳转,未查询到结果则弹窗(如下),输入错误也弹窗(两个弹窗文本内容不同).如何获取未查询到结果的弹窗和验证码错误的弹窗文本内容,再根据其弹窗内容执行相应的操 ...

  6. python selenium 弹窗获取元素_python中能否使用selenium获取弹窗的文本内容?

    问题如下:网页输入验证码正确并且查询到结果则跳转,未查询到结果则弹窗(如下),输入错误也弹窗(两个弹窗文本内容不同).如何获取未查询到结果的弹窗和验证码错误的弹窗文本内容,再根据其弹窗内容执行相应的操 ...

  7. python selenium 处理弹窗_python+selenium 抓取弹出对话框信息

    抓取弹出对话框信息,困挠了我很久,我百度了很久,一直没有找到我想要的内容.最近学习到了. 有两种方法: 1.driver.switch_to.alert.text 2.result = EC.aler ...

  8. python selenium 处理弹窗_Selenium-python 之弹窗处理

    在Selenium-python 中,有时候需要对弹窗进行处理,比如获取弹窗上的内容.确定.取消.在弹窗上输入内容后点击确定-再次点出弹窗,需要专门的处理. 一.获取弹窗的内容 driver.find ...

  9. python+selenium爬虫自动化批量下载文件

    一.项目需求 在一个业务网站有可以一个个打开有相关内容的文本,需要逐个保存为TXT,数据量是以千为单位,人工操作会麻木到崩溃. 二.解决方案 目前的基础办法就是使用python+selenium自动化 ...

最新文章

  1. android edittext输入邮箱,[Android教程]EditText怎样限制用户的输入?数字/字母/邮箱
  2. 青龙羊毛——新快手极速版(搬运,非原创)
  3. 一言不合就删库跑路?万名贡献者和阿里巴巴开源的二三事
  4. 为什么一次ajax调用会发送两次请求?
  5. Mysql:Sql的执行顺序
  6. java date.getyear_为什么Java的Date.getYear()返回111而不是2011?
  7. php console postman,postman内置脚本说明
  8. python 猴子补丁_python面试题精讲——monkey patch(猴子补丁)
  9. 如何更好地理解Javascript对象的自有属性和原型继承属性
  10. python组态开发_开发监控云组态软件的组成
  11. 计算机硬件专业实习日志,计算机维护实习日记总汇
  12. dw添加下拉菜单_怎样用dreamweaver制作网站下拉菜单
  13. 计算机科学人工智能的应用,计算机人工智能技术的应用与发展.pdf
  14. 全面保护个人电脑中的宝贵数据和文件(转)
  15. Python学习记录day6-反射、常用模块
  16. 理论力学类毕业论文文献包含哪些?
  17. 新书《Android安全技术揭秘与防范》终于出版了
  18. unique中译_unique 是什么意思_unique 的翻译_音标_读音_用法_例句_爱词霸在线词典...
  19. 衍生品市场 Chap1-3 学习笔记
  20. 1549: 蔡老板发工资

热门文章

  1. 如何实现一个权限管理系统?
  2. VisualC++集成开发环境(2013-11-12)--深入浅出MFC
  3. 如何在G宝盘通过迅雷下载
  4. 图片高清放大效果怎么做?这三种方法分享给你
  5. 学习iOS 编程的一些建议
  6. 9.Metasploit制作木马后门
  7. 美国东北大学本科计算机排名,美国东北大学qs排名怎么样?
  8. 集简云 x 度量科技丨打通企业微信OA审批与招银云直联,实现支付信息自动同步网银系统
  9. Java毕设设计进销存仓库管理系统springboot+mybatis+easyui
  10. 悟空在线 - 国内首款IPA在线自动签名安装工具