之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章
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 webdriverdriver = webdriver.Chrome()driver.get('file:///D:/workhome/te/alert.html')driver.maximize_window()#窗口最大化driver.implicitly_wait(5)at = driver.switch_to.alertat.accept()#点击确定at.dismiss()#点击取消
点击后显示出来
2.确认框类型的弹窗
点击确认框-点击确定就显示删除的信息
先用F12,找到这个元素的定位信息传给selenium,右键复制xpath的地址
from selenium import webdriverfrom mon.by import Bydriver = 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.alertat.accept()
3.点击上传文件类型的弹窗
上传完后会显示一个上传的信息
from selenium import webdriverfrom mon.by import Bydriver = 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 webdriverfrom mon.by import Bydriver = 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窗口