python爬取iframe嵌套页面_WebDriver API之iframe、frame页面嵌套操作

本文详细介绍了如何使用Python的Selenium WebDriver API处理网页中的iframe嵌套页面,通过示例展示了switch_to.frame()、switch_to.default_content()和switch_to.parent_frame()等方法的用法,以QQ邮箱登录页面为例,演示了账号密码登录的过程。

在一个页面中可以嵌套另外一个页面,如frame/iframe技术,这是现在很多web应用中使用的一种方式,webdriver对象只能在一个页面(外层是默认的)中定位元素,需要一种方式将driver对象从外层切换给内层使用才能对内层的对象进行处理。

下图是qq邮箱登录页面,其中的登录框就是一个内嵌的frame页面,下面我们就以他为案例。

webdriver中提供的对iframe/frame操作API常用到有:

driver.switch_to.frame()

driver.switch_to.default_content()

driver.switch_to.parent_frame()

一、driver.switch_to.frame()

从外部页面切入frame框架中,参数可以为id/name/index及页面元素对象。

第一种方式:默认是可以给ID、name的

driver.switch_to.frame(“login_frame”)

第二种方式:给出页面的iframe的索引index,根据同层frame的顺序定位

driver.switch_to.frame()

第三种方式:可以传参iframe的元素对象

iframeObj = driver.find_element_by_xpath(’//*[@id=“login_frame”]’)

driver.switch_to.frame(iframeObj)

#导包、创建浏览器对象、打开qq首页

from selenium import webdriver

import time

driver = webdriver.Chrome()

# 1.打开腾讯首页;http://www.qq.com

driver.get("https://www.qq.com")

# 2.点击邮箱图标;

driver.fin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值