首页 > 软件开发 > PYTHON >

python实战004:Selenium获取源码中的DOM元素

来源:互联网 2023-03-16 19:12:20 89

前面我们已经通过Selenium可以模拟登录网站并获取到网页源码,接着我们就要想办法实现模拟登录,在实现模拟登录之前我们需要先获取到相应的DOM元素,才能给其赋值提交账户信息,这里我们要现获取到“登录”标签并实现点击,弹出百度登录窗口。qoz办公区 - 实用经验教程分享!

python实战004:Selenium获取源码中的DOM元素qoz办公区 - 实用经验教程分享!

工具/原料

  • Selenium

方法/步骤

  • 1

    用selenium查找元素是相当方便的事情的,selenium定义了很多查找DOM元素的方法,通常用的比较多的是通过id选择器和CSS选择器,当然还有更多的方法:qoz办公区 - 实用经验教程分享!

    python实战004:Selenium获取源码中的DOM元素qoz办公区 - 实用经验教程分享!

  • 1该信息未经许可获取自百度经验
  • 2

    在获取DOM元素之前我们需要先查看下网页源码,看看这个标签是用什么方法定义的,按F12打开“开发者工具”窗口,用元素选择器点中“登录”标签即可定位到该标签的源码位置,在源码中我们可以看到name="tj_login" class="lb"属性,我们先确认下这两个属性是否存在多个,如果都是唯一的,随便选个即可。qoz办公区 - 实用经验教程分享!

    python实战004:Selenium获取源码中的DOM元素qoz办公区 - 实用经验教程分享!

  • 3

    那么我们该如何来选择这个元素呢,这里我们可以使用find_element_by_css_selector方法来获取DOM元素,这里我们用name="tj_login" class="lb"两个属性分别获取下该元素,这时我们看到的就是弹出二维码登录的页面。qoz办公区 - 实用经验教程分享!

    python实战004:Selenium获取源码中的DOM元素qoz办公区 - 实用经验教程分享!

    python实战004:Selenium获取源码中的DOM元素qoz办公区 - 实用经验教程分享!

  • 4

    接着我们需要继续点击“用户名登录”标签,让窗口跳转到用户名登录页面,同样我们要先找到该标签的DOM元素, 按F12打开“开发者工具”窗口,用元素选择器点中“用户名登录”标签即可定位到该标签的源码位置,在源码中我们可以看到:p class="tang-pass-footerBarULogin pass-link" title="用户名登录" data-type="normal" id="TANGRAM__PSP_10__footerULoginBtn">用户名登录/qoz办公区 - 实用经验教程分享!

    python实战004:Selenium获取源码中的DOM元素qoz办公区 - 实用经验教程分享!

  • 5

    这里我们看到,代码中定义了ID属性id="TANGRAM__PSP_10__footerULoginBtn",这样我们就可以直接使用find_element_by_id来定位到该标签:qoz办公区 - 实用经验教程分享!

    python实战004:Selenium获取源码中的DOM元素qoz办公区 - 实用经验教程分享!

    python实战004:Selenium获取源码中的DOM元素qoz办公区 - 实用经验教程分享!

  • 6

    这里遇到个问题,当我使用find_element_by_css_selector方法获取标签时遇到点问题,在查找DOM元素时已经确认了该属性是唯一的,按理说直接指定该元素应该就可以定位到了,可以当我使用 find_element_by_css_selector(‘lb’)时报错了:没有这样的元素:找不到元素:“method”:“css selector”,“selector”:“lb”(翻译:没有这样的元素:找不到元素:“method”:“css selector”,“selector”:“lb”)qoz办公区 - 实用经验教程分享!

    python实战004:Selenium获取源码中的DOM元素qoz办公区 - 实用经验教程分享!

  • 7

    我用获取元素信息的方法is_displayed()查看'.lb'是否存在,打印element判断元素是否是存在的,返回true,说明是存在的,false表示不存在,这里返回false,说明没找到'.lb'。qoz办公区 - 实用经验教程分享!

    python实战004:Selenium获取源码中的DOM元素qoz办公区 - 实用经验教程分享!

  • 8

    总结: 通过find_element_by_css_selector查找DOM元素要从父级开始往下查找,才能找到对应的属性标签。qoz办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!qoz办公区 - 实用经验教程分享!


    标签: python

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码