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

该文章是Python爬虫系列的第七篇,主要讲解如何使用Selenium库处理不同类型的弹窗,包括alert对话框、确认框、文件上传弹窗,以及解决在隐藏iframe中点击登录的问题。示例代码展示了如何接受或取消alert,点击确认框,上传文件,以及在iframe中进行点击操作来登录网站。
摘要由CSDN通过智能技术生成

在这里插入图片描述
之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章
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 弹窗

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窗口

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轻烟飘荡

我想吃甜筒

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值