1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python爬虫(7)selenium3种弹窗定位后点击操作 解决点击登录被隐藏iframe无法点击的登陆问题

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

时间:2018-09-24 12:32:46

相关推荐

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

之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。