美文网首页Python爬虫
selenium模拟登录获取iframe标签(#document

selenium模拟登录获取iframe标签(#document

作者: Mr_zY | 来源:发表于2018-12-11 02:51 被阅读91次
    目标网址

    https://www.shiguangkey.com/
    该网站基本都是使用js进行渲染,使用selenium模拟登录更加简单

    实现
    1. 首先获取并点击首页的‘登录’按钮,可看到弹出登录框
    # 点击登录按钮
        btn = wait.until(
            EC.presence_of_element_located((By.XPATH, "//a[@class='_320Oc O8KBD']"))
        )
        btn.click()
    
    登录框.png
    1. 此时要获取该框中的元素时,就会抛出超时异常,查看源码可发现,该登录框是由iframe元素实现的。


      源码.png
    1. iframe是内嵌的网页元素,我们想获取其中的元素,需要先切换到iframe元素中
    # 切换iFrame
        wait.until(
            EC.frame_to_be_available_and_switch_to_it((By.ID, "LOGIN_FRAME"))
        )
    
    1. 此时,一次获取输入框并输入账户密码即可登录成功,并通过get_cookies()函数获取其所有cookies以备之后使用。
    • 由于该网站石油JS进行渲染,其网页源码只有极少基本信息。检验cookies是否可用,可访问个人信息页面https://www.shiguangkey.com/i/profile通过其状态码进行判断。
    • 该站点更新频繁,本文章只为介绍selenium模拟登录过程中iframe标签中元素无法获取的解决方案
    • 参考于https://blog.csdn.net/huifeituzi/article/details/50517672https://www.cnblogs.com/ketangxiaohai/p/9216483.html

    相关文章

      网友评论

        本文标题:selenium模拟登录获取iframe标签(#document

        本文链接:https://www.haomeiwen.com/subject/wiijhqtx.html