selenium的switch_to.frame()应用之qq空间

最近在爬取QQ空间数据时出现了一些问题,在登录界面获取id为switcher_plogin的元素时,报错,提示找不到该元素,但是通过查看源码的确有这个元素,最终解决方法如下:

原因是需要先通过使用switch_to.frame()这个方法来进入到frame中,这样就可以读取所指定的元素了。

比如:# switch frame driver_chrome.switch_to.frame("login_frame")

login_frame: 是指定元素所在的frame名称,我这里是QQ空间登录界面的,具体的需要据实际页面而定

下面是qq空间扫码登录界面跳转到用户名密码登录界面的代码,仅供参考

#!/usr/bin/env python
#-*- coding:utf-8 -*-
'''
@Time    : 2019/10/18
@Author  : Frank Su
@File    : qzone.py
'''

import selenium
import selenium.webdriver
import time


if __name__ == "__main__":
    # get driver
    driver_chrome = selenium.webdriver.Chrome()
    # load url
    driver_chrome.get("https://qzone.qq.com/")
    time.sleep(3)
    # switch frame
    driver_chrome.switch_to.frame("login_frame")
    # get switcher elem
    elem_Switch = driver_chrome.find_element_by_id("switcher_plogin")
    # click
    time.sleep(3)
    elem_Switch.click()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值