Selenium 与 Spynner 切换frame(iframe)方法对比

在模拟操作网页过程中经常会遇到框架网页或者有iframe的网页,处理不当的话就会定位不到元素,很是让人头痛。
之前遇到典型的例子就是腾讯的登录框,很多都是用iframe加载的,只要能够定位到iframe,定位对应的元素非常简单。
在主要用selenium之前用spynner比较多,spynner的优势在于可以直接看操作过程,劣势在于用户少、文档简单、坑比较多。

spynner

在spynner中,关于frame或者iframe的操作对应是webframe对象,由于spynner是对qtwebkit4的一个封装,因此对应qtwebkit4的webframe对象,官方文档及网上没有切换frame的例子,通过查看spynner源码及qtwebkit的文档,终于找到了切换frame(iframe)的方法。

方法一
child_frames = browser.webframe.childFrames()

browser.webframe.childFrames()返回结果为当前页面子框架的列表,可以根据列表中的元素访问对应的frame,如child_frames[0]就是第一个子frame。

方法二
browser.set_webframe(0)

设置第1个子frame作为当前的webframe。

selenium

driver.switch_to.frame(0)
driver.switch_to.frame(id)
driver.switch_to.frame(name)
driver.switch_to.frame(driver.find_element方法)

selenium关于frame的操作相对灵活一些,可以通过frame的索引、id、name、元素定位来进行切换。

总结

selenium功能相对丰富一些,用的人多,坑少一些,这两年又出了基本相关的书。
spynner文档少,坑比较多,很多时候需要看源码,翻qtwebkit文档。
但是这两个库跟qtwebkit都有着千丝万缕的关系,想用好,还是多了解些qtwekit的知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值