Python爬虫(7)selenium3种弹窗定位后点击操作,解决点击登录被隐藏iframe无法点击的登陆问题

news2024/11/15 2:06:36

在这里插入图片描述
之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章
Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式
Python爬虫(2)-Selenium控制浏览器
Python爬虫(3)-Selenium结合pywin32模拟键盘操作
Python爬虫(4)-Selenium模拟鼠标操作
Python爬虫(5)-selenium用显式等待、隐式等待、强制等待,解决反复爬取网页时无法定位元素问题
Python爬虫(6)-selenium用requests、wget、urllib3这3种方法搞定图片和PDF文件下载

弹窗的样例主要是基于这个网站,需要测试使用时可以用jQuery Mobile 弹窗

Python爬虫(7)selenium3种弹窗定位后点击操作,解决点击登录被隐藏iframe无法点击的登陆问题

  • 1.第一种alert弹出弹框,需要点击确定或取消然后显示信息
  • 2.确认框类型的弹窗
  • 3.点击上传文件类型的弹窗
  • 4.解决点击登录被隐藏iframe无法点击的登陆问题

1.第一种alert弹出弹框,需要点击确定或取消然后显示信息

在这里插入图片描述

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('file:///D:/workhome/te/alert.html')
driver.maximize_window()#窗口最大化
driver.implicitly_wait(5)
at = driver.switch_to.alert
at.accept()#点击确定
at.dismiss()#点击取消

点击后显示出来

在这里插入图片描述

2.确认框类型的弹窗

点击确认框-点击确定就显示删除的信息
在这里插入图片描述

在这里插入图片描述
先用F12,找到这个元素的定位信息传给selenium,右键复制xpath的地址
在这里插入图片描述
在这里插入图片描述

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get('file:///D:/workhome/te/enter.html')
driver.maximize_window()
driver.implicitly_wait(5)
driver.find_element(By.XPATH,('/html/body/div/input')).click()
at = driver.switch_to.alert
at.accept()

在这里插入图片描述

3.点击上传文件类型的弹窗

在这里插入图片描述
上传完后会显示一个上传的信息
在这里插入图片描述

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('file:///D:/workhome/te/upload_file.html')
driver.maximize_window()
driver.implicitly_wait(5)
file = r'D:\1.txt'#上传本地文件
fup = driver.find_element_by_id('file')# 点击上传按钮上传本地文件
fup.send_keys(file)

4.解决点击登录被隐藏iframe无法点击的登陆问题

某些特殊的网站由于设置了隐藏iframe导致无法进行点击登录的情况,对于这种,首先我们需要切换到iframe弹窗,然后再进行点击操作,再对要点击弹框进行点击即可进入到相应的页面
在这里插入图片描述
在这里插入图片描述

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('登录的网址')
iframeto = driver.find_element(By.ID,'ptlogin_iframe') #定位第一层iframe窗口
driver.switch_to.frame(iframeto)#切换到对应iframe窗口
driver.find_element(By.ID,'需要被点击的登录元素').click()
driver.switch_to.default_content()#退出iframe窗口

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/357833.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

看见统计——第四章 统计推断:频率学派

看见统计——第四章 统计推断:频率学派 接下来三节的主题是中心极限定理的应用。在不了解随机变量序列 {Xi}\{X_i\}{Xi​} 的潜在分布的情况下,对于大样本量,中心极限定理给出了关于样本均值的声明。例如,如果 YYY 是一个 N(0&am…

Spring系列-2 Bean的生命周期

背景: 作为Spring系列的第二篇,本文结合容器的启动流程介绍单例Bean的生命周期,包括Bean对象的创建、属性设置、初始化、使用、销毁等阶段;在此过程中会介绍Spring用于操作Bean或者BeanDefinition的相关扩展接口。 文章重心在于介…

Spring Boot 日志文件,你都会了吗?

目录 1、日志文件的作用 2、日志的使用 2.1、从程序中得到日志对象 2.2、使用日志 2.3、日志格式 3、日志级别 3.1、这样的日志级别有什么用? 3.2、日志级别分类和使用 3.3、日志级别设置 4、日志持久化 5、更简单的日志输出——lombok 5.1、对比 5.2、…

阅读源码和查看官方文档,是解决问题最高效的办法。

作为一个工作8年的老程序员告诉你:阅读源码和查看官方文档,是解决问题最高效的办法。不信你来看,这个困扰了读者半天的问题我查了源码和文档后瞬间解决。 前言 上周五有位读者私信我一个问题,说困扰了他半天,研究了一…

利用Rust与Flutter开发一款小工具

1.起因 起因是年前看到了一篇Rust iOS & Android|未入门也能用来造轮子?的文章,作者使用Rust做了个实时查看埋点的工具。其中作者的一段话给了我启发: 无论是 LookinServer 、 Flipper 等 Debug 利器,还是 Flutt…

基于springboot+vue的疾病匿名检测查询系统

基于springbootvue的疾病匿名检测查询系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背…

【拥抱开源】发布自己的项目到maven中央仓库

文章目录🎈第一步,注册账号💿第二步,登录📀第三步,设置信息💾第四步,创建问题📹第五步,验证信息🎥第六步,上传jar包到中央仓库&#x…

网页中字体混淆的处理(简易方法)——爬虫学习笔记

网页中字体混淆的处理——爬虫学习笔记之评论爬取一、网页分析1、打开某点评网址。2、在网页源代码中寻找评论信息(1)进入这个“火锅店”的详情页,然后右击“检查”(2)点上面“刷新”详情页,逐步寻找。&…

RK3288 GPIO记录

1、引脚对应的GPIO 编号第一种 使用/sys/kernel/debug/gpio查询所有gpio引脚的基数第二种 cat /sys/class/gpio/gpiochip248/label对应的label就是GPIO引脚,例如下图GPIO8对应的基数就是2482、计算编号编号 基数 PIN脚如GPIO8的基数是248, GPIO8_A6的编…

Java开发 - 数风流人物,还看“微服务”

目录 前言 服务器端的发展历程 早期的服务器 动态的页面 用户内容网站 微服务 企业级应用 互联网应用 微服务介绍 什么是微服务? 为什么使用微服务 怎么使用微服务 Spring Cloud 什么是Spring Cloud Nacos注册中心 什么是Nacos 创建微服务项目 创建…

【Servlet篇】一文带你吃透Request对象

文章目录1. 前言2. Request 对象2.1 Request 继承体系2.2 Request 获取请求参数1. 获取请求行数据2. 获取请求头数据3. 获取请求体数据4. 获取请求参数的通用方式3. IDEA中快速创建 Servlet你问我青春还剩几年?我的回答是,趁现在,正当时。身边…

CS144-Lab2

实验架构 除了写入传入流之外,TCPReceiver 还负责通知 sender 两件事: “First unassembled” 字节的索引,称为“acknowledgment”或 “ackno”。这是接收方需要来自发送方的第一个字节。“first unassembled ” 索引和“first unacceptable…

【项目精选】基于SSH的任务调度系统的设计与实现(视频+源码+论文)

点击下载源码 虽然科技进步在改革开发这几十年来速度飞快,计算机行业也发展迅速,但仍然有大量商家或企业,甚至项目组,采用落后的人工管理方式或者低效的任务调度策略,这无疑是对计算机的一种无视。 计算机处理信息的准…

Python每日一练(20230220)

目录 1. 存在重复元素 II 2. 按要求实现程序功能 3. 分割链表 附录 链表 1. 存在重复元素 II 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] nums [j],并且 i 和 j 的差的 绝对值 至多为 k。 …

高级数据类型

为了解决单一的业务而存在bitmapsBitmaps类型的基础操作 获取指定key对应偏移量上的bit值getbit key offset 设置指定key对应偏移量上的bit值,value只能是1或0setbit key offset valueBitmaps类型的扩展操作状态位的统计业务需求:1. 统计每天某一部电…

云计算ACP云服务器ECS实例题库(三)

😘作者简介:一名99年软件运维应届毕业生,正在自学云计算课程。👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。&…

关于监控服务器指标、CPU、内存、警报的一些解决方案

文章目录关于监控服务器指标、CPU、内存、警报的一些解决方案Prometheus Grafana 配置 IRIS / Cach 监控服务器Prometheus简介特点架构图Grafana简介特点配置流程自定义Prometheus接口定义配置 Exporter 监控服务器系统资源简介配置流程使用 Alertmanager报警简介配置流程基于…

软考高级-信息系统管理师之知识管理(最新版)

知识管理 知识与知识管理知识管理常用的方法和工具显性知识的管理隐形知识的管理知识管理的工具学习型组织知识产权保护计算机软件保护条例商标法专利法补充建议学的考点:知识与知识管理 1、知识的分类 知识可分为两类,分别是显性知识与隐性知识。 凡是能以文字与数字来表达…

【C++】关联式容器——map和set的使用

文章目录一、关联式容器二、键值对三、树形结构的关联式容器1.set2.multiset3.map4.multimap四、题目练习一、关联式容器 序列式容器📕:已经接触过STL中的部分容器,比如:vector、list、deque、forward_list(C11)等,这些容器统称为…

新能源汽车,有毒

作者| Mr.K 编辑| Emma来源| 技术领导力(ID:jishulingdaoli)新能源汽车到底有多火,生生逼得奥迪某4S店挂出横幅:我们也有纯电新能源!老牌名车的辛酸憋屈溢出屏幕。网友神评补刀“这标语给人‘诺基亚也有智能大屏机’的感觉。”一…